前説
AmazonConnect × Salesforceの連携プラグインの検証をしていて、AWS側の設定問題なのか、Salesforce側のAPI用設定の問題なのか切り分ける際に、素のSalesforceのAPIを実行してみたかった。
Salesforce側の設定前提
Salesforce上での接続アプリや接続ユーザなんかの設定は、
上記を参照して下さい。
本記事は、あくまでAPIをツールから実行することに焦点を当てています。
OAuth API実行の挙動
- アクセストークン払い出しの実行
- APIの実行
2段階の実行となっています。
Salesforceのアクセストークンの払い出しについて
モード | アクセストークン URL |
---|---|
本番(プロダクション) | https://login.salesforce.com/services/oauth2/token |
テスト(サンドボックス) | https://test.salesforce.com/services/oauth2/token |
HTTPヘッダーは
キー | 値 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Bodyは
キー | タイプ | 値 |
---|---|---|
grant_type | Text | password |
client_id | Text | コンシューマ鍵 |
client_secret | Text | コンシューマの秘密 |
username | Text | apiユーザのID |
password | Text | apiユーザのPW |
ツールでの実行結果は、上記のようになる。無事に「access_token」が返却される。
Salesforce API 実行
URL |
---|
https://ドメイン.my.salesforce.com/services/data/v55.0/parameterizedSearch |
HTTPヘッダーは
キー | 値 |
---|---|
Content-Type | application/json |
Authorization | Bearer アクセストークン |
注意
「Authorization」の値は、前節のアクセストークンそのままではなく、「Bearer」「半角スペース」「アクセストークン」の結合であることに注意
Bodyは
{
"q": "Salesforce上に登録されてる電話番号(頭0なし)",
"sobjects": [
{
"name": "Contact"
}],
"fields": [
"Id",
"Name",
"Email"]
}
Salesforce上の該当の電話番号を持つユーザ情報が取得できました。