Heroku を使用した Salesforce キャンバスアプリケーションの実行
この単元を完了すると、次のことができるようになります。
- キャンバスアプリケーションの認証プロセスを理解する。
- Heroku を使用して Salesforce キャンバスアプリケーションを実行する方法を理解する。
Salesforce キャンバスを使用すると、Heroku で実行する UI または Web アプリケーションを Salesforce UI に埋め込むことができます。キャンバスの主な強みは、オープンソースの大量の Web テクノロジを使用し、Salesforce と簡単に統合される Web アプリケーションを作成できることです。キャンバス SDK は、Web アプリケーションの JavaScript から使用され、ユーザにアクセス権がある Salesforce データにアクセスします。ローカルマシンでキャンバスアプリケーションを開発し、変更管理とリリースに通常の開発者フローを使用できます。
内部では、キャンバスアプリケーションは iframe 経由で Salesforce に読み込まれます。もちろん、任意の Web アプリケーションを iframe 経由で Salesforce の UI に読み込むことができますが、キャンバスでは、JavaScript 経由でセキュアな通信プロトコルを使用して Salesforce と通信することができます。キャンバス JavaScript API の実装内容以外の機能が必要なとき、キャンバスで処理される認証と Salesforce REST API を統合できます。場合によっては、この統合を JSforce などの REST API ラッパーを使用して行います。
キャンバスアプリケーションは Salesforce で接続されたアプリケーションを使用し、署名付き要求または通常の OAuth フローを使用して認証を処理できます。署名付き要求方法の強みの 1 つは、Salesforce システム管理者がユーザにキャンバスアプリケーションへのアクセスを許可すると、キャンバスアプリケーションが Salesforce に要求を行う場合に中間認証が不要になることです。キャンバスアプリケーションは、読み込まれると、ユーザにアクセス権がある Salesforce データへのアクセスを開始できます。
Heroku でキャンバスアプリケーションを実行すると、キャンバスアプリケーションは接続されたアプリケーションのコンシューマの秘密が必要になります。コンシューマの秘密は、Heroku 設定変数を通じて提供され、環境変数としてアプリケーションで使用できます。
基本的なキャンバスアプリケーションは、キャンバス SDK JavaScript ライブラリを次のように読み込みます。
<script type="text/javascript" src="https://.salesforce.com/canvas/sdk/js/36.0/canvas-all.js"></script> <script type="text/javascript"> // callback to access the OAuth access token and context object Sfdc.canvas(function() { // Save the token Sfdc.canvas.oauth.token(window.signedRequestJson.oauthToken); window.alert("hello, " + window.signedRequestJson.context.user.fullName); }); </script>
アプリケーションのコンテキストデータは、Salesforce 内でアプリケーションが実行されている場所によって異なります。キャンバスアプリケーションは、Chatter フィード、Chatter タブ、レイアウト、モバイルカード、パブリッシャーアクション、および Visualforce ページに読み込むことができます。それぞれは、異なるコンテキストをキャンバスアプリケーションに提供できます。たとえば、キャンバスアプリケーションが取引先ページのレイアウトで表示された場合、コンテキストには取引先のデータが含まれます。これにより、キャンバスアプリケーションの JavaScript は、そのデータを使用して情報を表示できます。