本書の第 II 部は、初心者から熟練した上級者まで、コードで Salesforce1 アプリケーショ ンをカスタマイズする必要があるすべての開発者を対象としています。
3. Delivery-Tracker-Java-App ディレクトリに移動します。たとえば、
• コマンドラインから
Heroku
アプリケーションを管理するHeroku Toolbelt
。https://toolbelt.heroku.comに移動し、
Heroku Toolbelt
をダウンロードしてイ ンストールします。アプリケーションの機能に関係なく、キャンバスアプリケーションの作成手順および 実行手順は同じです。したがって、この章の手順は、前の章「キャンバスカスタムア クションを使用したSalesforce1の拡張」
(
ページ121)
の手順と似ています。DeliveryTrakr
は、顧客の注文の配送を追跡するためにAcme Wireless
で使用するWeb
アプリケーションです。倉庫の作業者はこのアプリケーションを使用して、配送済みの注 文を確認し、配送情報をフィードに投稿します。
DeliveryTrakr Web
アプリケーションに は、一部の配送処理ロジックが含まれていますが、完全なアプリケーションではあり ません。このアプリケーションの目的は、Web
アプリケーションとSalesforce1
アプリ ケーションをどのように統合できるかを示すことにあります。DeliveryTrakr
は、Heroku
で実行されるJava
アプリケーションです。アプリケーションで実行中の各インスタンスは、組織で作成する接続アプリケーションに対してコンシュー マの秘密を参照する必要があります。したがって、キャンバスアプリケーションとし て追加できる
DeliveryTrakr
の独自のインスタンスがHeroku
で必要となります。このス テップでは、処理の最初のステップであるアプリケーションのコピーを行います。1.
コマンドウィンドウを開き、DeliveryTrakr
をダウンロードするディレクトリに移 動します。アプリケーションをコピーすると、Delivery-Tracker-Java-App というディレクトリが作成され、ここからコピーコマンドを実行できます。•
Windows
を実行しているコンピュータの場合は、[
スタート] > [
ファイル名を指定して実行
...]
をクリックしてコマンドウィンドウを開き、「cmd」と入力 します。•
Mac OS
を実行しているコンピュータの場合は、Command + Space
キーを押してコマンドウィンドウを開き、「terminal」と入力します。
要求されたら、メールアドレスとパスワードを入力します。
5.
heroku apps:createコマンドを入力して、新しいHeroku
アプリケーション を作成します。アプリケーションが作成されたことを示す次のような確認メッセージが表示さ れます。
Creating deep-samurai-7923... done, stack is cedar http://deep-samurai-7923.herokuapp.com/ |
[email protected]:deep-samurai-7923.git Git remote heroku added
6. Heroku
アプリケーションのURL
をコピーします。これは、次のタスクで使用します。この例では、
URL
はhttp://deep-samurai-7923.herokuapp.comと なっていますが、独自のHeroku
アプリケーションのURL
をコピーしてください。Heroku
でDeliveryTrakr Web
アプリケーションを作成しましたが、リリースする必要があるため、このままではまだ動作しません。この操作は、後のステップで 行います。
次のステップでは、このアプリケーションを
Salesforce
でキャンバスアプリケーション として追加します。DeliveryTrakr キャンバスアプリケーションを作成する
このステップでは、
DeliveryTrakr Web
アプリケーションをキャンバスアプリケーション として公開します。キャンバスアプリケーションを作成するユーザには、「アプリケーションのカスタマ イズ」権限と「すべてのデータの編集」権限が必要です。
1. Salesforce
アプリケーションで、[
設定]
から[クイック検索]ボックスに「アプリケーション」と入力し、[アプリケーション]を選択します。
2. [
接続アプリケーション]
関連リストで、[
新規]
をクリックします。3.
[接続アプリケーション名]項目に、「DeliveryTrakr」と入力します。4.
[取引先責任者 メール]項目で、メールアドレスを入力します。5. API ([OAuth
設定の有効化])
セクションで、[OAuth 設定の有効化]を選択します。6.
[コールバック URL]項目に、作成したHeroku
アプリケーションのURL
を貼り付 け、プロトコルをHTTPSに変更します。たとえば、最終的なURL
は、https://deep-samurai-7923.herokuapp.comのようになります。
7.
[選択した OAuth 範囲]項目で[
フルアクセス]
を選択し、[
追加]
をクリックし ます。キャンバスアプリケーションの機能に必要な
OAuth
は最小限に抑えることをお 勧めします。8. [
キャンバスアプリケーション設定]
セクションで、[Force.com キャンバス]を選択します。
9.
[キャンバスアプリケーションの URL]項目に、[コールバック URL]項目で入力した
URL
に/canvas.jspを付加して入力します。たとえば、URL
はhttps://deep-samurai-7923.herokuapp.com/canvas.jspのようになり ます。
10. [
アクセス方法]
ドロップダウンリストで、[
署名付き要求(POST)]
を選択します。11.
[場所]項目で、[Chatter
フィード]
と[
パブリッシャー]
を選択し、[
追加]
をクリックします。
キャンバスアプリケーションはパブリッシャーとフィードに表示されるため、
これらの値を選択しています。
12. [
保存]
をクリックします。キャンバスアプリケーションを保存すると、詳細ページが表示されます。
キャンバスアプリケーションが追加されたので、次にアクセスできるユーザを指定し ましょう。
DeliveryTrakr キャンバスアプリケーションにアクセスできる
ユーザを設定する
キャンバスアプリケーションを作成しても、ユーザアクセスを設定するまでは、誰も アプリケーションを表示できません。
1. [
設定]
から、[クイック検索]ボックスに「接続アプリケーション」と入力し、接 続アプリケーションを管理するオプションを選択します。2. DeliveryTrakr
アプリケーションをクリックし、[
編集]
をクリックします。3. [
許可されているユーザ]
ドロップダウンリストで、[
管理者が承認したユーザは 事前承認済み]
を選択します。表示されるポップアップメッセージで[OK]
をク リックします。4. [
保存]
をクリックします。ここで、キャンバスアプリケーションを表示できるユーザを定義します。これ を行うには、プロファイルと権限セットを使用します。この例では、システム 管理者プロファイルを持つユーザにアプリケーションへのアクセスを許可しま す。
5. [
接続アプリケーションの詳細]
ページの[
プロファイル]
関連リストで、[
プロ ファイルを管理する]
をクリックします。6.
[システム管理者]プロファイルを選択し、[
保存]
をクリックします。これで完成です。次のステップでは、
Heroku
で環境変数をいくつか設定します。Heroku 環境変数を設定する
キャンバスアプリケーションを作成したら、コンシューマの秘密に環境変数を設定す る必要があります。
1. [
設定]
から、[クイック検索]ボックスに「アプリケーション」と入力し、[
アプ リケーション]
を選択します。2. [
接続アプリケーション]
関連リストで、[DeliveryTrakr]
をクリックします。3.
[コンシューマの秘密]項目の横にある[
クリックして公開]
リンクをクリックし ます。4.
コンシューマの秘密をコピーします。5.
コマンドウィンドウを開き、Delivery-Tracker-Java-Appディレクトリに 移動し、heroku config:add APP_SECRET='Your_Consumer_Secret'コマ ンドを入力して環境変数を作成します。Windows
コンピュータで作業を行っている場合は、一重引用符を二重引用符(")
に置き換えなければならないことがあります。
6.
Delivery-Tracker-Java-App\src\main\webapp\scriptsディレクトリに 移動します。7.
エディタでshipment.jsを開きます。onGetPayload関数で、YOUR_APP_URL
を、Heroku
のDeliveryTrakr
アプリケーションのURL
であるp.url ="https://[YOUR_APP_URL]/signed-request.jsp?shipment=" + shipment;に置き換えます。
このコードは、
231
行目あたりにあります。この例では、コードの行は次のよ うになります。p.url = "https://deep-samurai-7923.herokuapp.com/
signed-request.jsp? shipment=" + shipment;