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