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