入力およびバイナリファイルのアップロードの例
入力での POST、PATCH、または PUT の使用
HTTP POST、PATCH、および PUT メソッドを使用して要求を行うとき、要求パラメータまたはリクエストボディを使用できます。リクエストボディには、JSON または XML を含めることができます。リソース固有の要求パラメータとリクエストボディを渡すと、要求パラメータが無視されます。リソースに固有でない要求パラメータ (ベアラートークン URL 内のパラメータや _HttpMethod パラメータなど) はリクエストボディと共に処理されます。ベアラートークンパラメータはそのまま使用します。パラメータの追加や削除はしないでください。
要求パラメータを使用して要求を送信するには、値 application/x-www-form-urlencoded を指定した Content-Type ヘッダー項目を使用します。
- application/json
- application/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 ブラウザからのリッチ入力ボディパートの HTTP ヘッダー | ヘッダー値とパラメータ | 説明 |
|---|---|---|
| Content-Disposition |
form-data; name="feedElement" form-data; name="comment" form-data; name="photo" form-data; name="file" |
バイナリファイルを含むフィード要素を投稿するには、name の値を "feedElement" にする必要があります (バージョン 35.0 以前の場合)。 バイナリファイルを含むコメントを投稿するには、name の値を "comment" にする必要があります。 従業員、ユーザ、またはグループの写真をアップロードするには、name の値を "photo" にする必要があります。 [ファイル] ホームまたは外部リポジトリにファイルをアップロードするには、name の値を "file" にする必要があります。 |
次の表では、マルチパート/フォームデータ要求のバイナリアップロードボディパートに必要な HTTP ヘッダーとパラメータを説明します。
| バイナリアップロードボディパートの HTTP ヘッダー | ヘッダー値とパラメータ | 説明 |
|---|---|---|
| Content-Disposition | form-data; name="feedElementFileUpload"; filename=string |
バイナリファイルを含むフィード要素を投稿するには、name の値を "feedElementFileUpload" にする必要があります (バージョン 35.0 以前の場合)。 バイナリファイルを含むコメントを投稿するには、name の値を "feedElementFileUpload" にする必要があります。 |
| form-data; name="fileUpload" filename=string | ユーザまたはグループの写真をアップロードするには、name の値を "fileUpload" にする必要があります。 | |
| form-data; name="fileData" filename=string | [ファイル] ホームにファイルをアップロードする、または外部リポジトリにファイルをアップロードするには、name の値を "fileData" にする必要があります。 | |
| form-data; name="audioFileData" filename=string | オーディオファイルをアップロードするには、name の値を "audioFileData" にする必要があります。 | |
| Content-Type | application/octet-stream; charset=ISO-8859-1 | バイナリファイルのメディアタイプと文字セット。 |
バイナリファイルを含むフィード要素の投稿 (バージョン 35.0 以前)
1curl -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/v35.0/chatter/feed-elements
5-H 'Authorization: OAuth 00DRR0000000N0g!...' --insecure1POST /services/data/v35.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--バイナリファイルを含むフィード要素の一括投稿 (バージョン 35.0 以前)
1curl -H "X-PrettyPrint: 1" -F 'json={"inputs":[{"binaryPartNames":["bin1"], "richInput":{"subjectId":"me","body":{
2"messageSegments":[{"type":"Text","text":"Please accept this receipt"}]},"capabilities": {"content" : {"description": "Receipt for expenses", "title":"receipt.pdf"}},"feedElementType":"FeedItem"}},
3{"binaryPartNames":["bin2"],"richInput":{"subjectId":"me","body":{"messageSegments":[{"type":"Text","text":"Post Number 2"}]},
4"capabilities": {"content" : {"description": "Receipt for expenses", "title":"receipt2.pdf"}},"feedElementType":"FeedItem"}}]};type=application/json'
5-F "bin1=@/Users/jsmith/Desktop/receipt.pdf;type=application/octet-stream" -F "bin2=@/Users/jsmith/Desktop/receipt2.pdf;type=application/octet-stream"
6-X POST https://instance_name/services/data/v35.0/chatter/feed-elements/batch
7-H 'Authorization: OAuth 00DD00000007HoR44QATPNzhzYEJBfU' --insecure1POST /services/data/v35.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--バイナリファイルを含むコメントの投稿
1curl -H "X-PrettyPrint: 1" -F 'json={ "body":{ "messageSegments":[ { "type":"Text", "text":"Here's another receipt." } ] }, "capabilities":{ "content":{ "title":"receipt2" } } };
2type=application/json' -F "feedElementFileUpload=@receipt2.txt;type=application/octet-stream"
3-X POST https://instance_name/services/data/v53.0/chatter/feed-elements/0D5RR0000004Grx/capabilities/comments/items
4-H 'Authorization: OAuth 00DRR0000000N0g!ARoAQB...' --insecure1POST /services/data/v53.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="feedElementFileUpload"; filename="receipt2.txt"
32Content-Type: application/octet-stream; charset=ISO-8859-1
33
34...contents of receipt2.txt...
35
36--F9jBDELnfBLAVmLNbnLIYibT5Icp0h3VJ7mkI--バイナリファイルを含む複数のコメントの投稿
richInput プロパティには、各サブ要求のリクエストボディを含めます。
また、binaryPartName および binaryPartNameAlias プロパティには、バイナリパートに関する情報を含めます。
1curl -H "X-PrettyPrint: 1" -F 'json={ "haltOnError":true, "batchRequests":[ { "url":"/v33.0/chatter/feed-elements/0D5D0000000YG0N/capabilities/comments/items",
2"method":"Post", "binaryPartName":"binaryPart1", "binaryPartNameAlias":"feedElementFileUpload", "richInput":{ "body":{ "messageSegments":[ { "type":"Text", "text":"Check out this file, it may help." } ] },
3 "capabilities":{ "content":{ "title":"Presentation1.txt" } } } }, { "url":"/v33.0/chatter/feed-elements/0D5D0000000YG0M/capabilities/comments/items",
4"method":"Post", "binaryPartName":"binaryPart2", "binaryPartNameAlias":"feedElementFileUpload", "richInput":{ "body":{ "messageSegments":[ { "type":"Text", "text":"Check out this file, it may help." } ] },
5 "capabilities":{ "content":{ "title":"Presentation2.txt" } } } } ] };type=application/json' -F "binaryPart1=@/Users/jbleyle/Desktop/Presentation1.txt;type=application/octet-stream"
6-F "binaryPart2=@/Users/jbleyle/Desktop/Presentation2.txt;type=application/octet-stream"
7-X POST https://instance_name/services/data/v53.0/connect/batch
8-H 'Authorization: OAuth 00DD00000007HoR!...' --insecure1https://instance_name/services/data/v53.0/connect/batch
2
3Authorization: OAuth 00DD0000000Jhd2!...
4Accept: application/json
5Host: instance_name
6Content-Type: multipart/form-data; boundary=123123
7
8--123123
9Content-Disposition: form-data; name="json"
10Content-Type: application/json
11
12{
13 "haltOnError":true,
14 "batchRequests":[
15 {
16 "url":"/v53.0/chatter/feed-elements/0D5D0000000YG0D/capabilities/comments/items",
17 "method":"Post",
18 "binaryPartName":"binaryPart1",
19 "binaryPartNameAlias":"feedElementFileUpload",
20 "richInput":{
21 "body":{
22 "messageSegments":[
23 {
24 "type":"Text",
25 "text":"Check out this file, it may help."
26 }
27 ]
28 },
29 "capabilities":{
30 "content":{
31 "title":"Presentation1.txt"
32 }
33 }
34 }
35 },
36 {
37 "url":"/v53.0/chatter/feed-elements/0D5D0000000YG0H/capabilities/comments/items",
38 "method":"Post",
39 "binaryPartName":"binaryPart2",
40 "binaryPartNameAlias":"feedElementFileUpload",
41 "richInput":{
42 "body":{
43 "messageSegments":[
44 {
45 "type":"Text",
46 "text":"Check out this file, it may help."
47 }
48 ]
49 },
50 "capabilities":{
51 "content":{
52 "title":"Presentation2.txt"
53 }
54 }
55 }
56 }
57 ]
58}
59
60
61--123123
62Content-Disposition: form-data; name="binaryPart1"; filename="Presentation1.txt"
63Content-Type: application/octet-stream; charset=ISO-8859-1
64Content-Transfer-Encoding: binary
65
66This is the content of file 1
67--123123
68Content-Disposition: form-data; name="binaryPart2"; filename="Presentation2.txt"
69Content-Type: application/octet-stream; charset=ISO-8859-1
70Content-Transfer-Encoding: binary
71
72This is the content of file 2
73--123123--ユーザの写真のアップロードおよびトリミング
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/v53.0/connect/user-profiles/me/photo
4 -H 'Authorization: OAuth 00DRR0000000N0g!ARoAQFRi_gBqZhajAX22MNuLrrE2Xk...'
5 --insecure1POST /services/data/v53.0/connect/user-profiles/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--[ファイル] ホームへのファイルのアップロード
1curl -H "X-PrettyPrint: 1" -F 'json={"title":"BoatPrices"};type=application/json'
2-F "fileData=@BoatPrices.pdf;type=application/octet-stream"
3-X POST https://instance_name/services/data/v53.0/connect/files/users/me
4-H 'Authorization: OAuth 00DRR0000000N0g!...' --insecure1POST /services/data/v53.0/connect/files/users/me
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--外部リポジトリへのファイルのアップロード
1curl -H "X-PrettyPrint: 1" -F 'json={"itemTypeId" : "file","fields" : [{"name" : "name","value" : "Content Hub Simple Create Specs"},
2{"name" : "description","value" : "Document explaining the various connect api endpoints required for simple create"}]};type=application/json'
3-F "fileData=@BoatPrices.pdf;type=application/text/plain"
4-X POST https://instance_name/services/data/v53.0/connect/content-hub/repositories/
50XCxx000000002CGAQ/folders/folder:0Bz0nXuFg43SiflFNdFNIaUJrY2hQaHVIVHMxYVpHd2ZHeXphTW83TElzcE84RUJ2Q3Q4Rm8/
6items
7-H 'Authorization: OAuth 00DRR0000000N0g!...' --insecure1POST /services/data/v53.0/connect/content-hub/repositories/0XCxx000000002CGAQ/
2folders/folder:0Bz0nXuFg43SiflFNdFNIaUJrY2hQaHVIVHMxYVpHd2ZHeXphTW83TElzcE84RUJ2Q3Q4Rm8/items
3
4Authorization: OAuth 00DD0000000Jhd2!AQIAQC.lh4qTQcBhOPm4TZom5IaOOZLVPVK4wI_rPYJvmE8r2VW8XA.
5OZ7S29JEM_7Ctq1lst2dzoV.owisJc0KacUbDxyae
6User-Agent: Jakarta Commons-HttpClient/3.0.1
7Host: instance_name
8Content-Length: 489
9Content-Type: multipart/form-data; boundary=a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
10Accept: application/json
11
12--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
13Content-Type: application/json
14Content-Disposition: form-data; name="json"
15
16{
17 "itemTypeId" : "file",
18 "fields" : [
19 {
20 "name" : "name",
21 "value" : "Items Sharepoint 012.png"
22 },
23 {
24 "name" : "description",
25 "value" : "This is a test file"
26 }]
27}
28
29--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
30Content-Disposition: form-data; name="fileData"; filename="items_Sharepoint_012.png"
31Content-Type: image/png
32
33...PNG...
34
35--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq--オーディオファイルのアップロード
1curl --location --request POST 'https://instance_name/services/data/v53.0/voicecalls/0LQB00000001BqU/audio_upload' \
2--header 'Authorization: Bearer 00DR0000000H1C0!ARYAQA2lbJjcFU6PMnH.cFInsqFQvFkqDlnzQTUEUgjPJ6_gVHo7ZdGCFnFTYt3AWuKLFz2ahVdsd1pS9ENozHfrONLI_EQa' \
3--form 'audioFileData=@/Users/v.dodeja/Desktop/recordingservlet.mp3'