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

Chatter REST API 入力の使用

入力での POST、PATCH、または PUT の使用

HTTP POST、PATCH、および PUT メソッドを使用して要求を行うとき、要求パラメータまたはリクエストボディを使用できます。リクエストボディには、JSON または XML を含めることができます。リソース固有の要求パラメータとリクエストボディを渡すと、要求パラメータが無視されます。リソースに固有でない要求パラメータ (ベアラートークン URL 内のパラメータや _HttpMethod パラメータなど) はリクエストボディと共に処理されます。ベアラートークンパラメータはそのまま使用します。パラメータの追加や削除はしないでください。

要求パラメータを使用して要求を送信するには、値 application/x-www-form-urlencoded を指定した Content-Type ヘッダー項目を使用します。

リクエストボディを使用して要求を送信するには、Content-Type ヘッダー項目と Accept ヘッダー項目に次のいずれかの値を使用します。
  • application/json
  • application/xml

バイナリファイルのアップロード

バイナリファイルをアップロードするには、マルチパート/フォームデータ要求のボディパートとして送信する必要があります。投稿またはコメントのテキストのような情報を、同じマルチパート/フォームデータ要求の JSON または XML リッチ入力ボディパートとして送信できます。または、その情報を要求パラメータで送信するように選択することもできます。リッチ入力リクエストボディと要求パラメータの両方を渡すと、要求パラメータは無視されます。

マルチパート/フォームデータ要求を作成するには、要求のヘッダーで Content-Type HTTP ヘッダーを multipart/form-data に設定します。

その他の HTTP ヘッダーについての詳細は、W3C フォームコンテンツタイプと、マルチパート/フォームデータインターネットメディアタイプが定義されている 「RFC 2388」 を参照してください。

次の表では、マルチパート/フォームデータ要求のリッチ入力ボディパートに必要な HTTP ヘッダーとパラメータを説明します。

リッチ入力ボディパートの HTTP ヘッダー ヘッダー値とパラメータ 説明
Content-Disposition form-data; name="json"

form-data; name="xml"

投稿またはコメントのリクエストボディ。

JSON の場合は、name の値に "json" を使用します。

XML の場合は、name の値に "xml" を使用します。

Content-Type application/json; charset=UTF-8

application/xml; charset=UTF-8

リクエストボディのデータ形式と文字セット。

JSON の場合、値は application/json にする必要があります。

XML の場合、値は application/xml にする必要があります。

Web ブラウザは通常、非バイナリパート (リッチ入力ボディなど) に独自の Content-Type があると、マルチパートの要求を実行することができません。この問題を回避するには、特定の Content-Disposition name を指定して、Salesforce がリッチ入力パートの Content-Type を読み取れるようにします (リッチ入力ボディに Content-Type を指定する必要はありません)。

ヒント

次の表では、Web ブラウザからのマルチパート/フォームデータ要求のリッチ入力ボディパートに必要な HTTP ヘッダーとパラメータについて説明します。
Web ブラウザからのリッチ入力ボディパートの HTTP ヘッダー ヘッダー値とパラメータ 説明
Content-Disposition form-data; name="feedElement"

form-data; name="comment"

form-data; name="photo"

form-data; name="file"

バイナリファイルを含むフィード要素を投稿するには、name の値を "feedElement" にする必要があります。

バイナリファイルを含むコメントを投稿するには、name の値を "comment" にする必要があります。

ユーザまたはグループの写真を投稿するには、name の値を "photo" にする必要があります。

[ファイル] リストにファイルを投稿するには、name の値を "file" にする必要があります。

次の表では、マルチパート/フォームデータ要求のバイナリアップロードボディパートに必要な HTTP ヘッダーとパラメータを説明します。

バイナリアップロードボディパートの HTTP ヘッダー ヘッダー値とパラメータ 説明
Content-Disposition form-data; name="feedElementFileUpload"; filename=string

form-data; name=name="feedElementFileUpload"; filename=string

form-data; name="fileUpload" filename=string

form-data; name="fileData" filename=string

バイナリ添付ファイルを含むフィード要素を投稿するには、name の値を "feedElementFileUpload" にする必要があります。

バイナリファイルを含むコメントを投稿するにはname の値を "feedElementFileUpload" にする必要があります。

ユーザまたはグループの写真を投稿するには、name の値を "fileUpload" にする必要があります。

[ファイル] リストにファイルを投稿するには、name の値を "fileData" にする必要があります。

filename パラメータと値を指定する必要があります。ただし、Chatter は、Content Capability Inputtitle プロパティの値を filename パラメータの値ではなく、ファイル名として使用します。

メモ

Content-Type application/octet-stream; charset=ISO-8859-1 バイナリファイルのメディアタイプと文字セット。

空白と改行 (CRLF) は重要です。たとえば、次の行では空白が必要です: Content-Disposition: form-data; name="feedItemFileUpload"; title="2012_q1_review.ppt"。空白ではなく CRLF を使用すると、エラーが返されます。

メモ

バイナリ添付ファイルを含むフィード要素の投稿
次の例では、/chatter/feed-elements リソースを使用して新しいフィード項目 (フィード要素の種類の 1 つ) を投稿し、バイナリファイルをアップロードして新しいフィード項目に添付します。次の例では cURL を使用します。
1swfobject.registerObject("clippy.codeblock-0", "9");curl -H "X-PrettyPrint: 1" -F 'json={ "body":{ "messageSegments":[ { "type":"Text", "text":"Please accept this receipt." } ] }, 
2"capabilities":{ "content":{ "description":"Receipt for expenses", "title":"receipt.pdf" } }, "feedElementType":"FeedItem", "subjectId":"005RR000000DmOb" };
3type=application/json' -F "feedElementFileUpload=@receipt.pdf;type=application/octet-stream"
4 -X POST https://instance_name/services/data/v32.0/chatter/feed-elements 
5-H 'Authorization: OAuth 00DRR0000000N0g!...' --insecure
6
以下に、上記の例を、リクエストボディパートが確認できる形式に変えた例を示します。
1POST /services/data/v32.0/chatter/feed-elements HTTP/1.1
2Authorization: OAuth 00DRR0000000N0g!...
3User-Agent: Jakarta Commons-HttpClient/3.0.1
4Host: instance_name
5Content-Length: 845
6Content-Type: multipart/form-data; boundary=a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
7Accept: application/json
8
9--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
10Content-Disposition: form-data; name="json"
11Content-Type: application/json; charset=UTF-8
12
13{
14   "body":{
15      "messageSegments":[
16         {
17            "type":"Text",
18            "text":"Please accept this receipt."
19         }
20      ]
21   },
22   "capabilities":{
23      "content":{
24         "description":"Receipt for expenses",
25         "title":"receipt.pdf"
26      }
27   },
28   "feedElementType":"FeedItem",
29   "subjectId":"005RR000000DmOb"
30}
31
32--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
33Content-Disposition: form-data; name="feedElementFileUpload"; filename="receipt.pdf"
34Content-Type: application/octet-stream; charset=ISO-8859-1
35
36...contents of receipt.pdf...
37
38--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq--
バイナリ添付ファイルのあるフィード要素の一括投稿
次の例では、/chatter/feed-elements/batch リソースを使用してフィード要素を一括投稿し、2 つのバイナリファイルをアップロードして、バッチ内のフィード要素に添付します。リクエストボディにはバイナリパートに関する情報を含める必要があります。次の例では cURL を使用します。
1swfobject.registerObject("clippy.codeblock-2", "9");curl -H "X-PrettyPrint: 1" -F 'json={"inputs":[{"binaryPartNames":["bin1"], "richInput":{"subjectId":"me","body":{"messageSegments":[{"type":"Text","text":"Please accept this receipt"}]},"capabilities": {"content" : {"description": "Receipt for expenses", "title":"receipt.pdf"}},"feedElementType":"FeedItem"}},{"binaryPartNames":["bin2"],"richInput":{"subjectId":"me","body":{"messageSegments":[{"type":"Text","text":"Post Number 2"}]},"capabilities": {"content" : {"description": "Receipt for expenses", "title":"receipt2.pdf"}},"feedElementType":"FeedItem"}}]};type=application/json' -F "bin1=@/Users/jsmith/Desktop/receipt.pdf;type=application/octet-stream" -F "bin2=@/Users/jsmith/Desktop/receipt2.pdf;type=application/octet-stream" -X POST https://instance_name/services/data/v32.0/chatter/feed-elements/batch -H 'Authorization: OAuth 00DD00000007HoR44QATPNzhzYEJBfU' --insecure
以下に、上記の例を、リクエストボディパートが確認できる形式に変えた例を示します。
1POST /services/data/v32.0/chatter/feed-elements/batch HTTP/1.1
2Authorization: OAuth 00DRR0000000N0g!...
3User-Agent: Jakarta Commons-HttpClient/3.0.1
4Host: instance_name
5Content-Length: 845
6Content-Type: multipart/form-data; boundary=a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
7Accept: application/json
8
9--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
10Content-Disposition: form-data; name="json"
11Content-Type: application/json; charset=UTF-8
12
13{
14  "inputs": [
15    {
16      "binaryPartNames": [
17        "bin1"
18      ],
19      "richInput": {
20        "subjectId": "me",
21        "body": {
22          "messageSegments": [
23            {
24              "type": "Text",
25              "text": "Please accept this receipt"
26            }
27          ]
28        },
29        "capabilities": {
30          "content": {
31            "description": "Receipt for expenses",
32            "title": "receipt.pdf"
33          }
34        },
35        "feedElementType": "FeedItem"
36      }
37    },
38    {
39      "binaryPartNames": [
40        "bin2"
41      ],
42      "richInput": {
43        "subjectId": "me",
44        "body": {
45          "messageSegments": [
46            {
47              "type": "Text",
48              "text": "Post Number 2"
49            }
50          ]
51        },
52        "capabilities": {
53          "content": {
54            "description": "Receipt for expenses",
55            "title": "receipt2.pdf"
56          }
57        },
58        "feedElementType": "FeedItem"
59      }
60    }
61  ]
62}
63
64--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
65Content-Disposition: form-data; name="bin1"; filename="receipt.pdf"
66Content-Type: application/octet-stream; charset=ISO-8859-1
67
68...contents of receipt.pdf...
69
70
71--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
72Content-Disposition: form-data; name="bin2"; filename="receipt2.pdf"
73Content-Type: application/octet-stream; charset=ISO-8859-1
74
75...contents of receipt2.pdf...
76
77--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq--

binaryPartNames プロパティ内のバイナリパート名は、バイナリリクエストパートの name プロパティ内のバイナリパート名と一致する必要があります。

メモ

バイナリ添付ファイルを含むコメントの投稿
次の例では、cURL を使用してフィード項目にコメントを投稿し、バイナリ添付ファイルをアップロードします。
1curl -H "X-PrettyPrint: 1" -F 'json={ "body":{ "messageSegments":[ { "type":"Text", "text":"Here's another receipt." } ] }, "capabilities":{ "content":{ "title":"receipt2" } } };
2type=application/json' -F "feedItemFileUpload=@receipt2.txt;type=application/octet-stream" 
3-X POST https://instance_name/services/data/v32.0/chatter/feed-elements/0D5RR0000004Grx/capabilities/comments/items 
4-H 'Authorization: OAuth 00DRR0000000N0g!ARoAQB...' --insecure
以下に、上記の例を、リクエストボディパートが確認できる形式に変えた例を示します。
1POST /services/data/v32.0/chatter/feed-elements/0D5RR0000004Grx/capabilities/comments/items  HTTP/1.1
2Authorization: OAuth 00DD0000000Jhd2!AQIAQC.lh4qTQcBhOPm4TZom5IaOOZLVPVK4wI_rPYJvmE8r2VW8XA.
3OZ7S29JEM_7Ctq1lst2dzoV.owisJc0KacUbDxyae
4Accept: application/json
5User-Agent: Jakarta Commons-HttpClient/3.0.1
6Host: instance_name
7Content-Length: 978
8Content-Type: multipart/form-data; boundary=F9jBDELnfBLAVmLNbnLIYibT5Icp0h3VJ7mkI
9
10--F9jBDELnfBLAVmLNbnLIYibT5Icp0h3VJ7mkI
11Content-Disposition: form-data; name="json"
12Content-Type: application/json; charset=UTF-8
13
14{
15   "body":{
16      "messageSegments":[
17         {
18            "type":"Text",
19            "text":"Here's another receipt."
20         }
21      ]
22   },
23   "capabilities":{
24      "content":{
25         "title":"receipt2"
26      }
27   }
28}
29
30--F9jBDELnfBLAVmLNbnLIYibT5Icp0h3VJ7mkI
31Content-Disposition: form-data; name="feedItemFileUpload"; filename="receipt2.txt"
32Content-Type: application/octet-stream; charset=ISO-8859-1
33
34...contents of receipt2.txt...
35
36--F9jBDELnfBLAVmLNbnLIYibT5Icp0h3VJ7mkI--
ユーザの写真の投稿およびトリミング
次の例では、cURL を使用してユーザプロファイルの写真をアップロードし、トリミングします。
1curl -H "X-PrettyPrint: 1" -F 'json={"cropX": "0", "cropY": "0", "cropSize": "200"};type=application/json'
2 -F "fileUpload=@myPhoto.jpg;type=application/octet-stream" 
3-X POST https://instance_name/services/data/v32.0/chatter/users/me/photo
4 -H 'Authorization: OAuth 00DRR0000000N0g!ARoAQFRi_gBqZhajAX22MNuLrrE2Xk...'
5 --insecure
以下に、上記の例を、リクエストボディパートが確認できる形式に変えた例を示します。
1POST /services/data/v32.0/chatter/users/me/photo HTTP/1.1
2Authorization: OAuth 00DD0000000Jhd2!AQIAQC.lh4qTQcBhOPm4TZom5IaOOZLVPVK4wI_rPYJvmE8r2VW8XA.
3OZ7S29JEM_7Ctq1lst2dzoV.owisJc0KacUbDxyae
4User-Agent: Jakarta Commons-HttpClient/3.0.1
5Host: instance_name
6Content-Length: 543
7Content-Type: multipart/form-data; boundary=a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
8Accept: application/json
9
10--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
11Content-Type: application/json; charset=UTF-8
12Content-Disposition: form-data; name="json"
13
14{
15   "cropX" : "0",
16   "cropY" : "0",
17   "cropSize" : "200"
18}
19
20--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
21Content-Disposition: form-data; name="fileUpload"; filename="myPhoto.jpg"
22Content-Type: application/octet-stream; charset=ISO-8859-1
23
24...contents of myPhoto.jpg...
25
26--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq--
[ファイル] リストへのファイルの投稿
次の例では、cURL を使用してファイルを [ファイル] リストにアップロードします。
1curl -H "X-PrettyPrint: 1" -F 'json={"title":"BoatPrices"};type=application/json' -F "fileData=@BoatPrices.pdf;type=application/octet-stream" -X POST https://instance_name/services/data/v32.0/chatter/users/me/files -H 'Authorization: OAuth 00DRR0000000N0g!...' --insecure
以下に、上記の例を、リクエストボディパートが確認できる形式に変えた例を示します。
1POST /services/data/v32.0/chatter/users/me/files
2
3Authorization: OAuth 00DD0000000Jhd2!AQIAQC.lh4qTQcBhOPm4TZom5IaOOZLVPVK4wI_rPYJvmE8r2VW8XA.
4OZ7S29JEM_7Ctq1lst2dzoV.owisJc0KacUbDxyae
5User-Agent: Jakarta Commons-HttpClient/3.0.1
6Host: instance_name
7Content-Length: 489
8Content-Type: multipart/form-data; boundary=a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
9Accept: application/json
10
11--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
12Content-Type: application/json; charset=UTF-8
13Content-Disposition: form-data; name="json"
14
15{
16   "title":"BoatPrices"
17}
18
19--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
20Content-Disposition: form-data; name="fileData"; filename="BoatPrices.txt"
21Content-Type: application/octet-stream; charset=ISO-8859-1
22
23...contents of BoatPrices.txt...
24
25--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq--