Force.com Canvas の使用
署名付き要求や OAuth 2.0 プロトコルなどの認証方式を必要とする外部アプリケーションに Salesforce コンソールを統合するには、Force.com Canvas を使用することをお勧めします。
Force.com Canvas と Salesforce コンソールインテグレーションツールキットは似ています。これらはツールと JavaScript API のセットで、開発者がサードパーティシステムを Salesforce に追加するために使用できます。ただし、Force.com Canvas の利点の 1 つとして、認証方式を選択できるという点があります。詳細は、『Force.com Canvas 開発者ガイド』を参照してください。
キャンバスアプリケーションの開発時に Salesforce コンソールインテグレーションツールキットの機能を含めるには、次の操作を実行します。
- コンソールインテグレーションツールキット API を index.jsp に含めます。
- ドメインのホワイトリストがコンソールにある場合は、キャンバスアプリケーションのドメインをホワイトリストに追加します。「Salesforce コンソールのホワイトリストのドメイン」を参照してください。
-
Sfdc.canvas.client.signedrequest() をコールし、コンソールインテグレーションツールキット API に必要な署名付き要求を保存します。たとえば、Force.com Canvas の認証方式が署名付き要求の場合は、次を実行します。
1Sfdc.canvas.client.signedrequest('<%=signedRequest%>')Force.com Canvas の認証方式が OAuth の場合は、『Force.com Canvas 開発者ガイド』の「キャンバスアプリケーションでのコンテキストの取得」に記載されているように、コンテキストの取得に使用されるコールバック関数で次を実行します。
1Sfdc.canvas.client.signedrequest(msg)
Salesforce コンソールインテグレーションツールキットおよびキャンバスアプリケーションを使用する場合は、次の点を考慮してください。
- コンソールインテグレーションツールキット API スクリプトは署名付き要求によって異なるため、Sfdc.canvas.client.signedrequest() コールの実行後に追加する必要があります。スクリプトを動的に読み込むことをお勧めします。
- キャンバスのサイドバーコンポーネントに関連付けられているレコードのエンティティ ID を取得するには、次を実行します。
1// Get signedRequest 2var signedRequest = Sfdc.canvas.client.signedrequest(); 3var parsedRequest = JSON.parse(signedRequest); 4// get the entity Id that is associated with this canvas sidebar component. 5var entityId = parsedRequest.context.environment.parameters.entityId; - OAuth の entityId を取得するには、次を実行します。
1var entityId = msg.payload.environment.parameters.entityId;msg.payload の取得方法の例については、『Force.com Canvas 開発者ガイド』の「キャンバスアプリケーションでのコンテキストの取得」を参照してください。