Context
キャンバスアプリケーションを Salesforce で接続アプリケーションとして追加すると、Context オブジェクトを使用して現在の環境に関する情報を取得できます。Context オブジェクトには、アプリケーションが誰によってどのように使用されるかを示す情報が含まれます。この情報を使用して、後続のコールで情報を取得しアプリケーションコードを作成できるため、Salesforce ユーザインターフェースと完全に統合されているように見えます。このオブジェクトは JSON 形式で返され、次のオブジェクトが含まれます。
- Application — バージョン、アクセス方法、URL などのキャンバスアプリケーションに関する情報。
- Environment — 場所、UI テーマなどの環境に関する情報。
- Links — メタデータ URL、ユーザ URL、Chatter グループ URL などのリンク。これらのリンクを使用して、アプリケーションから Salesforce へのコールを行うことができます。
- Organization — 名前、ID、通貨コードなどの組織に関する情報。
- User — ロケール、名前、ユーザ ID、メールなどの現在ログインしているユーザに関する情報。
1"context":{
2 "application":
3 {
4 "applicationId":"06Px000000003ed",
5 "authType":"SIGNED_REQUEST",
6 "canvasUrl":"http://instance.salesforce.com:8080
7 /canvas_app_path/canvas_app.jsp",
8 "developerName":"my_java_app",
9 "isInstalledPersonalApp": false,
10 "name":"My Java App",
11 "namespace":"org_namespace",
12 "options":[],
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 "dimensions":
44 {
45 "clientHeight": "50px",
46 "clientWidth": "70px",
47 "height":"900px",
48 "width":"800px",
49 "maxHeight":"2000px",
50 "maxWidth":"1000px"
51
52 },
53 "record":
54 {
55 "attributes":
56 {
57 "type":"Account",
58 "url":"/services/data/v39.0/sobjects/Account/001xx000003DGWiAAO"
59 },
60 "Id":"001xx000003DGWiAAO",
61 "Phone":"(555) 555-5555",
62 "Fax":"(555) 555-5555",
63 "BillingCity":"Seattle"
64 },
65 "displayLocation":"Chatter",
66 "locationUrl":"http://instance.salesforce.com:8080/canvas_app_path",
67 "subLocation":null,
68 "uiTheme":"Theme3",
69 "version":
70 {
71 "api":"39.0",
72 "season":"SUMMER"
73 }
74 },
75 "organization":
76 {
77 "currencyIsoCode":"USD",
78 "multicurrencyEnabled":true,
79 "name":"Edge Communications",
80 "namespacePrefix":"org_namespace",
81 "organizationId":"00Dx00000001hxyEAA"
82 },
83 "links":
84 {
85 "chatterFeedItemsUrl":"/services/data/v39.0/chatter/feed-items",
86 "chatterFeedsUrl":"/services/data/v39.0/chatter/feeds",
87 "chatterGroupsUrl":"/services/data/v39.0/chatter/groups",
88 "chatterUsersUrl":"/services/data/v39.0/chatter/users",
89 "enterpriseUrl":"/services/Soap/c/39.0/00Dx00000001hxy",
90 "loginUrl":"http://login.salesforce.com",
91 "metadataUrl":"/services/Soap/m/39.0/00Dx00000001hxy",
92 "partnerUrl":"/services/Soap/u/39.0/00Dx00000001hxy",
93 "queryUrl":"/services/data/v39.0/query/",
94 "restUrl":"/services/data/v39.0/",
95 "recentItemsUrl":"/services/data/v39.0/recent/",
96 "searchUrl":"/services/data/v39.0/search/",
97 "sobjectUrl":"/services/data/v39.0/sobjects/",
98 "userUrl":"/005x0000001SyyEAAS"
99 }
100}コンテキストデータの不要な部分を除外するように Salesforce に要求できます。除外するデータの量を制御するには、独自の Canvas.CanvasLifecycleHandler を Apex で実装し、excludeContextTypes() の実装に除外するコンテキストセクションのリストを指定します。