進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

Heroku を使用した Salesforce キャンバスアプリケーションの実行

学習の目的

この単元を完了すると、次のことができるようになります。

  • キャンバスアプリケーションの認証プロセスを理解する。
  • Heroku を使用して Salesforce キャンバスアプリケーションを実行する方法を理解する。

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 ラッパーを使用して行います。

Heroku アプリケーションがキャンバス Javascript ブリッジを介して Salesforce とやりとりできることを示す図

認証

キャンバスアプリケーションは 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 は、そのデータを使用して情報を表示できます。

リソース