#
ドキュメント

Document

自分のための備忘録です。

REST API によるデータ処理

公式ドキュメント

ベース URI

リソースの URI は、認証サービスから取得するベース URI (http://{{ domain }}/services/data) に続きます。

ref. https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/resources_list.htm

↑の domainOAuth 2.0 で返される instance_url

以下はアクセストークン取得時のレスポンスとして返された instance_url の例。

Postman

s-hiroshi-dev-ed.lightning.force.com を指定してレコードを更新したが失敗した。
↑を OAuth 2.0 のアクセストークン取得で返される instance_url の値 s-hiroshi-dev-ed.my.salesforce.com に変更したら更新できた。

  • ドメインは私のドメインで確認できるが、 OAuth2.0 の instance_url を使うのが安全
  • 私のドメインinstance_url が常に同じになるかは未確認

ref. https://help.salesforce.com/articleView?id=000322728&type=1&mode=1

  • s-hiroshi-dev-ed.my.salesforce.com ○
  • s-hiroshi-dev-ed.lightning.force.com ×

オブジェクトを取得

例:物件オブジェクト( API参照名 Property__c )のID a0000000000000000D に関する情報を取得する(物件は Property というらしい)。

$ curl --location --request GET 'https://{{ domain }}/services/data/v48.0/sobjects/Property__c/a0000000000000000D' \
--header 'X-PrettyPrint: 1' \
--header 'Authorization: Bearer {{access_token}}'

ID はブラウザで該当物件を表示したときに表示される値。
ref. https://www.synergy-marketing.co.jp/cloud/synergylead/support/salesforceid-output-byreport/

X-PrettyPrint:1 については以下を参照。
ref. https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/dome_event_log_file_download.htm (Official)

オブジェクトを更新

公式ドキュメント

接続アプリケーションまたはユーザーに対象オブジェクトの書き込み権限が必要。

WorkBench

Workbench__REST_Explorer.png

cURL

{{domain}} は私のドメインで確認する。

  • -X--requestの短縮形
  • -L--locationの短縮形
  • -D--dump-headerの短縮形

例1

curl --location --request PATCH 'https://{{domain}}/services/data/v52.0/sobjects/Account/{{object id}}' \
--header 'Content-Type: application/json; charset=UTF-8' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
-d '{"Name": "San4"}'

例2

curl --location --request PATCH 'https://{{domain}}/services/data/v52.0/sobjects/Account/{{object id}}' \
--header 'Content-Type: application/json; charset=UTF-8' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data-raw '{
    "Name": "San2"
}'

例3

  • -D -で標準出力にレスポンスヘッダ表示
  • -d "@salesforce.json"でローカルの同一ディレクトリにあるsalesforce.jsonの値で更新
 curl -D - -X PATCH 'https://{{domain}}/services/data/v52.0/sobjects/Account/{{object id}}' \
--header 'Content-Type: application/json; charset=UTF-8' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer  {{access_token}}' \
-d "@salesforce.json"

Postman を使用

Explore the Salesforce APIs with a Postman Collection