ストリーミング API イベントの登録
次のコード例に、subscribe メソッドをコールして、キャンバスアプリケーションでストリーミング API イベントを登録できるようにする方法を示します。イベントを登録するには、キャンバスアプリケーションイベントの登録に使用する標準の sfdc.canvas.client.subscribe メソッドをコールします。subscribe メソッドをコールする場合、クライアントおよびストリーミング API イベントを渡す必要があります。ストリーミング API 通知を受信できるのは、開いており、イベントを登録したキャンバスアプリケーションのみです。
この例の onComplete メソッドは、コードでイベントが正常に登録された後で実行する関数を指定します。onData メソッドは、イベントでストリーミング API 通知を受信したときに実行する関数を指定します。
1// Subscribe to Streaming API events.
2// The PushTopic to subscribe to must be passed in.
3// The 'onComplete' method may be defined,
4// and will fire when the subscription is complete.
5Sfdc.canvas(function() {
6 sr = JSON.parse('<%=signedRequestJson%>');
7 var handler1 = function(){ console.log("onData done");},
8 handler2 = function(){ console.log("onComplete done");};
9 Sfdc.canvas.client.subscribe(sr.client,
10 {name : 'sfdc.streamingapi', params:{topic:"/topic/InvoiceStatements"}},
11 onData : handler1, onComplete : handler2}
12 );
13});subscribe メソッドをコールすると、REST コールが行われ、ストリーミング API への接続に必要な OAuth 範囲がキャンバスアプリケーションに設定されていることが確認されます。このため、キャンバスアプリケーションでストリーミング API イベントを登録するたびに、1 つの API コールが使用され、組織の API 要求数の制限に含まれます。ストリーミング API に接続するには、キャンバスアプリケーションに最低でも「データへのアクセスと管理 (API)」 OAuth 範囲が必要です。
subscribe メソッドへのコールが成功した場合、ペイロード {success:true,handle:handle} で onComplete メソッドがコールされます。handle は、登録先のストリーミング API チャネルの名前が含まれる配列で、subscriptionId は一意の ID が含まれる整数です。たとえば、["/topics/InvoiceStatements", subscriptionId] です。subscribe メソッドへのコールが失敗した場合、ペイロード {success:false,errorMessage:msg} で onComplete メソッドがコールされます。msg は、エラーの原因が含まれる文字列です。
ストリーミング API 通知を受け取るには、PushTopic によって定義されたチャネルを作成する必要があります。詳細は、『Streaming API 開発者ガイド』の「ステップ 2: PushTopic を作成する」を参照してください。