この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

もうひとこと: キャンバスアプリケーションでコンテキストを取得する

Force.com Canvas SDK には、アプリケーションや現在のユーザに関するコンテキスト情報を Salesforce から取得できるコールとオブジェクトが備えられています。

コンテキストの取得

署名付き要求を使用してキャンバスアプリケーションを認証すると、キャンバスアプリケーション URL への POST の一部として CanvasRequest オブジェクト (Context オブジェクトが含まれる) を取得します。認証に OAuth を使用する場合やコンテキスト情報を取得するためにコールする場��は、JavaScript コールを行います。この情報を使用して、後続のコールで情報を取得してアプリケーションコードを作成できるため、Salesforce1 ユーザインターフェースと完全に統合されているように見えます。

次のコードサンプルは、JavaScript コールでコンテキストを取得する例を示しています。このコードでは、テキストが「Get Context」のリンクを作成し、そのリンクから Sfdc.canvas.client.ctx 関数をコールします。

1swfobject.registerObject("clippy.codeblock-0", "9");<script>
2    function callback(msg) {
3       if (msg.status !== 200) {
4          alert("Error: " + msg.status);
5          return;
6       }
7       alert("Payload: ", msg.payload);
8    }
9                
10    var ctxlink = Sfdc.canvas.byId("ctxlink");
11    var client = Sfdc.canvas.oauth.client();
12    ctxlink.onclick=function() {
13       Sfdc.canvas.client.ctx(callback, client)};
14    }
15</script>
16
17<a id="ctxlink" href="#">Get Context</a>
18

コンテキストのオブジェクト

キャンバスアプリケーションでコールを行ってコンテキストを取得すると、応答で CanvasRequest オブジェクトが返されます。このオブジェクトには、アプリケーションとユーザに関するすべてのコンテキスト情報が含まれます。コンテキストのオブジェクトは、次のとおりです。
オブジェクト 説明
CanvasRequest Context オブジェクトと Client オブジェクトを返します。
Client クライアントアプリケーションに関するコンテキスト情報を返します。
Context キャンバスアプリケーションのコンシューマに関する情報を返します。Application、Environment、Links、Organization、User オブジェクトが含まれます。
Application バージョン、アクセス方法、URL などのキャンバスアプリケーションに関する情報を返します。
Environment 場所、UI テーマなどの環境に関する情報を返します。
Links メタデータ URL、ユーザ URL、Chatter グループ URL などのリンクを返します。これらのリンクを使用して、アプリケーションから Salesforce へのコールを行うことができます。
Organization 名前、ID、通貨コードなどの組織に関する情報を返します。
User ロケール、名前、ユーザ ID、メールアドレスなどの現在ログインしているユーザに関する情報を返します。
次のコードスニペットは、CanvasRequest オブジェクトの例を示しています。
1{
2    "context":
3    {
4        "application": 
5        {
6            "applicationId":"06Px000000003ed", 
7            "authType":"SIGNED_REQUEST", 
8            "canvasUrl":"http://instance.salesforce.com:8080
9                /canvas_app_path/canvas_app.jsp", 
10            "developerName":"my_java_app", 
11            "name":"My Java App", 
12            "namespace":"org_namespace", 
13            "referenceId":"09HD00000000AUM", 
14            "samlInitiationMethod": "None",
15            "version":"1.0.0"
16        },
17        "user":
18        {
19            "accessibilityModeEnabled":false, 
20            "currencyISOCode":"USD", 
21            "email":"admin@6457617734813492.com", 
22            "firstName":"Sean", 
23            "fullName":"Sean Forbes", 
24            "isDefaultNetwork":false, 
25            "language":"en_US", 
26            "lastName":"Forbes", 
27            "locale":"en_US", 
28            "networkId":"0DBxx000000001r", 
29            "profileId":"00ex0000000jzpt", 
30            "profilePhotoUrl":"/profilephoto/005/F", 
31            "profileThumbnailUrl":"/profilephoto/005/T", 
32            "roleId":null, 
33            "siteUrl":"https://mydomain.force.com/", 
34            "siteUrlPrefix":"/mycommunity", 
35            "timeZone":"America/Los_Angeles", 
36            "userId":"005x0000001SyyEAAS", 
37            "userName":"admin@6457617734813492.com", 
38            "userType":"STANDARD"
39        }, 
40        "environment": 
41        { 
42            "parameters":
43            {
44                "complex":
45                {
46                    "key1":"value1",
47                    "key2":"value2"
48                },
49                "integer":10,
50                "simple":"This is a simple string.",
51                "boolean":true
52            },
53            "dimensions": 
54            { 
55                "height": "900px", 
56                "width": "800px", 
57                "maxHeight":"2000px",
58                "maxWidth":"1000px",
59
60                "clientHeight":"80px",
61                "clientWidth":"968px"
62            }, 
63            "displayLocation":"Chatter",
64            "locationUrl": "http://www.salesforce.com
65                /some/path/index.html", 
66            "uiTheme":"Theme3",
67            "record":{},
68            "version": 
69            { 
70                "api":"33.0", 
71                "season":"SUMMER" 
72            }, 
73        }, 
74        "organization":
75        {
76            "currencyIsoCode":"USD", 
77            "multicurrencyEnabled":true, 
78            "name":"Edge Communications", 
79            "namespacePrefix":"org_namespace", 
80            "organizationId":"00Dx00000001hxyEAA"
81        },
82        "links":
83        {
84            "chatterFeedItemsUrl":"/services/data/v33.0/
85                chatter/feed-items", 
86            "chatterFeedsUrl":"/services/data/v33.0/
87                chatter/feeds", 
88            "chatterGroupsUrl":"/services/data/v33.0/
89                chatter/groups", 
90            "chatterUsersUrl":"/services/data/v33.0/
91                chatter/users", 
92            "enterpriseUrl":"/services/Soap/c/33.0/
93                00Dx00000001hxy", 
94            "loginUrl":"http://login.salesforce.com",
95            "metadataUrl":"/services/Soap/m/33.0/00Dx00000001hxy", 
96            "partnerUrl":"/services/Soap/u/33.0/00Dx00000001hxy", 
97            "queryUrl":"/services/data/v33.0/query/", 
98            "recentItemsUrl":"/services/data/v33.0/recent/", 
99            "restUrl":"/services/data/v33.0/", 
100            "searchUrl":"/services/data/v33.0/search/", 
101            "sobjectUrl":"/services/data/v33.0/sobjects/", 
102            "userUrl":"/005x0000001SyyEAAS" 
103        }
104    },
105    "client":
106    {
107        "instanceId":"06Px000000002JZ", 
108        "instanceUrl":"http://instance.salesforce.com:
109            8080", 
110        "oauthToken":"00Dx0000X00Or4J!ARQAKowP65p8FDHkvk.Uq5...", 
111        "targetOrigin":"http://instance.salesforce.com:
112            8080"
113    }, 
114"algorithm":"HMACSHA256", 
115"userId":"005x0000001SyyEAAS", 
116"issuedAt":null
117}
コンテキストのオブジェクトおよび Force.com Canvas SDK についての詳細は、Force.com Canvas 開発者ガイド』を参照してください。