もうひとこと: フィード項目を作成するコードについて
DeliveryTrakr Web アプリケーションのコードでは、shipment.js ファイルにさまざまなフィード項目を作成するロジックが含まれています。
キャンバスフィード項目の作成
onGetPayload 関数の次のコードスニペットは、CanvasPost 型のフィード項目を作成します。これでわかるように、すべての投稿値を動的に設定し、namespace や developerName などのキャンバスアプリケーションに関する情報を署名付き要求から取得します。また、URL に付加されキャンバスアプリケーションのフィード項目で使用されるパラメータを渡すこともできます。
1else if ("approval" === action)
2{
3 p.feedItemType = "CanvasPost";
4 p.auxText = "Please confirm this shipment status: " +
5 shipments[shipment].description;
6 p.namespace = sr.context.application.namespace;
7 p.developerName = sr.context.application.developerName;
8 p.thumbnailUrl = "https://cdn1.iconfinder.com/data/icons/
9 VISTA/project_managment/png/48/deliverables.png";
10 p.parameters = "{\"shipment\":\"" + shipment + "\"}";
11 p.title = shipments[shipment].description;
12 p.description = "This is a travel shipment for Shipment - " +
13 shipments[shipment].description +
14 ". Click the link to open the canvas app.";
15}[共有] ボタンの有効化
次のコードスニペットは、draw 関数の一部です。このステートメントをコールすると、[共有] ボタンが有効化されます。これにより、キャンバスアプリケーションの必須要素をユーザがすべて選択するまで、フィード項目を作成できなくなります。
1$$.client.publish(sr.client, {
2 name : 'publisher.setValidForSubmit',
3 payload : true});フィード項目の公開
ユーザが [共有] ボタンをクリックすると、次のコードスニペットにより、フィード項目がフィードに公開されます。作成されるフィード項目の種別は、選択する種別 (テキスト、リンク、キャンバス) によって異なります。
1$$.client.publish(sr.client, {name : 'publisher.setPayload',
2 payload : p});