Heroku への Web アプリケーションのリリース
ここまでのステップでは、「hello world」Web アプリケーションをローカルで実行し、キャンバスアプリケーションとして追加して、テストを実施しました。キャンバスアプリケーションがローカルで動作しているので、「hello world」Web アプリケーションを Heroku にリリースしてそこから実行します。これを行う手順は、次のとおりです。
- Heroku へのログインと Heroku Toolbelt のインストールをまだ行っていない場合は、「前提条件」に記載されているリンクからこれらを実行します。
- コマンドウィンドウを開き、c:\SalesforceCanvasFrameworkSDK に移動して、コマンド git init を入力します。これにより、ディレクトリが Git リポジトリとして再初期化されます。
-
コマンドウィンドウで、コマンド heroku create を入力します。これにより、新しい「シェル」アプリケーションが Heroku に作成されます。アプリケーションが作成されたことを示す次のような確認メッセージが表示されます。
1Creating deep-samurai-7923... done, stack is cedar 2http://deep-samurai-7923.herokuapp.com/ | git@heroku.com:deep-samurai-7923.git 3Git remote heroku added - この Heroku アプリケーションの名前を変更するには、コマンドウィンドウでコマンド heroku rename newAppName -—app oldAppName を入力します。
- コマンドウィンドウで、コマンド git add -Aを実行します。これにより、SalesforceCanvasFrameworkSDK プロジェクト全体が Git リポジトリに追加されます。Windows 環境で作業している場合、CRLF (行頭復帰/改行) で置き換えられた LF (改行) に関するメッセージが表示されることがあります。
- コマンドウィンドウで、コメントと共にコマンド git commit —m “MyChangeComments” を入力して、変更をコミットします。
-
コマンドウィンドウで、コマンド git push heroku master を入力して、変更を Heroku にリリースします。
このプロセスが正常に完了すると、次のような出力が表示されます。
1[INFO] ------------------------------------------------- 2[INFO] BUILD SUCCESS 3[INFO] ------------------------------------------------- 4[INFO] Total time: 13.188s 5[INFO] Finished at: Sat Feb 09 21:14:23 UTC 2013 6[INFO] Final Memory: 11M/490M 7[INFO] -------------------------------------------------「権限が拒否されました」というエラーメッセージが表示された場合、必要に応じて SSH キーを設定して Heroku に追加します。https://devcenter.heroku.com/articles/keys を参照してください。
-
コマンドウィンドウを開き、コンシューマの秘密を含む Heroku 環境変数を設定します。これを行うには、コマンド heroku config:add CANVAS_CONSUMER_SECRET=consumer_secret_value を入力して consumer_secret_value を、コピーした値に置き換えます。キャンバスアプリケーションのコンシューマの秘密を取得するには、[設定] から [クイック検索] ボックスに「アプリケーション」と入力し、[アプリケーション] を選択して Hello World アプリケーションをクリックします。[OAuth 設定] セクションに [コンシューマの秘密] 項目が表示されます。
-
ブラウザを開いて https://newappName.herokuapp.com/examples/hello-world/index.jsp の URL に移動し、Heroku でアプリケーションが実行されていることを確認します。
「This App must be invoked via a signed request!」というメッセージが表示されます。これは、アプリケーションが Heroku で実行されていることを意味します。このメッセージが表示されるのは、Salesforce から署名付き要求を受信するようにアプリケーションが設計されているためです。そのため、アプリケーションは Salesforce キャンバス環境外では実行されません。