Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動。 情報
バージョン: 1.0.5
Salesforce アカウント内のデータにアクセスします。データを挿入、更新、取得、照会します。
ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。
前提条件
ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。ExtensionCallout ポリシーで API プロキシ経由で拡張機能を使用する前に、次のことを行う必要があります。
RSA x509 秘密鍵/認定資格ペアを作成します。
拡張機能の構成で秘密鍵(.key)を認証情報として使用します。拡張機能に Salesforce へのアクセス権を付与する接続アプリケーションの作成で証明書(.crt)ファイルを使用します。
openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
-
Salesforce 接続アプリケーションは Salesforce 拡張機能に対するアクセス権を提供します。アプリケーションのセットアップについては下記の手順をご覧ください。
接続アプリケーションのコンシューマ キーを取得します。拡張機能は、アプリケーションでの認証時にこれを使用します。
- Salesforce のセットアップで、左のナビゲーションで [Apps] > [App Manager] の順に進みます。
- リストで作成した接続アプリケーションを探します。
- アプリケーションの行の右にあるプルダウンから [View] をクリックします。
- [API (Enable OAuth Settings)] でコンシューマ キーを検索し、その値を拡張機能の構成で使用する安全な場所にコピーします。
拡張機能によるアクセスのために接続アプリケーションをセットアップする
Salesforce 拡張機能が Salesforce にアクセスする前に、この拡張機能が Salesforce に接続できる Salesforce 接続アプリケーションを作成する必要があります。
Salesforce の接続アプリケーションは、外部アプリケーションが API を経由して Salesforce に接続する方法を提供します。
接続アプリケーションをセットアップするには:
- Salesforce にログインします。
- 右上の歯車アイコンをクリックしてから [Setup] をクリックします。
- 左側のナビゲーションで [Apps] > [App Manager] の順に展開します。
- [App Manager] ページで [New Connected App] をクリックします。
- [Basic Information] で必要なフィールドに入力します。値は記帳用です。拡張機能では使用されません。
- [API (Enable OAuth Settings)] で [Enable OAuth Settings] チェックボックスを選択します。
- これが拡張機能で使用されなくてもコールバック URL を入力します。
http://localhost/
または他のプレースホルダ ホストを使用できます。 - [Use digital signatures] チェックボックスを選択します。
- [Use digital signatures] で [Choose File] をクリックし、先に作成した
salesforce.crt
を見つけてアップロードします。 - [Selected OAuth Scopes] セクションで以下を追加し、[Selected OAuth Scopes] に組み込みます。
- データ(api)にアクセスして管理する
- リクエストを随時自動的に実行する(refresh_token、offline_access)
- [保存] をクリックします。エラーがあった場合は
salesforce.crt
ファイルの再作成とアップロードが必要な場合があります。 - 作成されたアプリケーションのページで [Manage] をクリックします。
- 作成したアプリケーションの [App Manager] ページで [Edit Policies] をクリックします。
- [OAuth policies] で [Permitted Users] プルダウンをクリックし、[Admin approved users are pre-authorized] をクリックします。
- [保存] をクリックします。
- アプリケーションのページに戻り、[Profiles] の下の [Manage Profiles] をクリックします。
[Application Profile Assignment] ページで、このアプリケーションが使用できるユーザー プロファイルのチェックボックスを選択します。
拡張機能の構成で使用するユーザーの名前に対応するプロファイルを必ず選択してください。システム管理者以上の権限を持つユーザーでこのアプリケーションにアクセスできる必要もあります。
Salesforce 内のユーザーのプロファイル設定を確認できます。[設定] エリアで [ユーザー] > [ユーザー] の順に展開し、拡張機能が表すユーザーを検索して、[プロファイル] 列でユーザーのプロファイルを見つけます。
[保存] をクリックします。
Salesforce について
Salesforce は顧客管理(CRM)プラットフォームです。顧客管理で顧客情報と対応の管理を強化し、企業による顧客ニーズの把握と問題解決をサポートします。これらの機能すべてを、どのデスクトップやデバイスからもいつでもアクセスできる 1 つのプラットフォーム上で実現します。
操作
挿入
sObject タイプとしてレコードを挿入します。
構文
<Action>insert</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"records":[ records-to-insert ],
"allOrNone": true | false
}]]></Input>
例
<Action>insert</Action>
<Input><![CDATA[{
"sobject": "Account",
"records":[
{ "Name": "MyAccountName" }
],
"allOrNone": true
}]]></Input>
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
sobject | 挿入するレコードの sObject タイプ。 | 文字列 | なし。 | はい。 |
records | sObject レコードの配列(JSON 形式)。最大数は 1,000 です。 | 配列 | なし。 | はい。 |
allOrNone | true の場合、更新の一部の失敗でも、更新全体が失敗します。 |
ブール値 | false | いいえ。 |
レスポンス
挿入操作の結果で構成される results
配列。
{
results: [
{ id: '0011U00000LQ76KQAT', success: true, errors: [] },
{ id: '0011U00000LQ76LQAT', success: true, errors: [] }
]
}
プロパティ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
results[*].id | 新しいレコード用に作成された sObject ID。 | 文字列 | なし。 | はい。 |
results[*].success | レコードの挿入が成功した場合は true 。 |
ブール値 | なし。 | はい。 |
results[*].errors | 実行中に発生したエラーの配列(ある場合)。 | 配列 | なし。 | はい。 |
update
Salesforce レコードを更新します。
構文
<Action>update</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"records": [ records-to-update ],
"allOrNone": true | false
}]]></Input>
例
<Action>update</Action>
<Input><![CDATA[{
"sobject": "Account",
"records":[
{
"id":"0011U00000LQ76KQAT",
"Name": "MyNewAccountName"
}
],
"allOrNone": true
}]]></Input>
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
sobject | 更新するレコードの sObject タイプ。 | 文字列 | なし。 | はい。 |
records | sObject レコードの配列(JSON 形式)。更新するレコードごとにレコードの ID 値が含まれている必要があります。最大数は 1,000 です。 | 配列 | なし。 | はい。 |
allOrNone | true の場合、更新の一部の失敗でも、更新全体が失敗します。 |
ブール値 | false | いいえ。 |
レスポンス
更新の結果を含む results
配列。
{
results: [
{ id: '0011U00000LQ76KQAT', success: true, errors: [] },
{ id: '0011U00000LQ76LQAT', success: true, errors: [] }
]
}
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
results[*].id | 更新レコード用に作成された sObject ID。 | 文字列 | なし。 | はい。 |
results[*].success | レコードの挿入が成功した場合は true 。 |
ブール値 | なし。 | はい。 |
results[*].errors | 実行中に発生したエラーの配列(ある場合)。 | 配列 | なし。 | はい。 |
retrieve
レコードの ID 別の sObject としてレコードを取得します。sObject タイプのすべてのフィールドを戻します。
構文
<Action>retrieve</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"ids":[ IDs-of-records-to-retrieve ]
}]]></Input>
例
<Action>retrieve</Action>
<Input><![CDATA[{
"sobject": "Account",
"ids":["0011U00000LQ76KQAT"]
}]]></Input>
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
sobject | 取得するレコードの sObject タイプ。 | 文字列 | なし。 | はい。 |
ids | 取得する sObject ID レコードの配列。最大数は 1,000 です。 | 配列 | なし。 | はい。 |
allOrNone | true の場合、リクエストの一部の失敗でも、操作全体が失敗します。 |
ブール値 | false | いいえ。 |
レスポンス
sObject の records
配列(JSON 形式)。プロパティ値が null でも、オブジェクトのすべてのプロパティが JSON に組み込まれることに注意してください。
{
records: [
{ sobject-json },
{ sobject-json }
]
}
querySOQL
Salesforce Object Query Language(SOQL)を使用して Salesforce.com に対するクエリを実行します。
構文
<Action>querySOQL</Action>
<Input><![CDATA[{
"soql": soql-query-statement
}]]></Input>
例
<Action>querySOQL</Action>
<Input><![CDATA[{
"soql": "SELECT Id, Name FROM Account"
}]]></Input>
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
soql | クエリで使用する SOQL 文。 | 文字列 | なし。 | はい。 |
レスポンス
クエリの結果。
{
totalSize: 2,
records: [
{
attributes: { attributes-of-record },
Id: '0011U00000LQ76KQAT',
Name: 'AccountName1'
},
{
attributes: { attributes-of-record },
Id: '0011U00000LQ76LQAT',
Name: 'AccountName2'
}
],
done: true
}
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
totalSize | クエリから戻るレコードの数。 | Integer | なし。 | はい。 |
records | sObject として戻るレコードの配列(JSON 形式)。最大数は 1,000 です。 | 配列 | なし。 | はい。 |
完了 | クエリ オペレーションが完了した場合 true |
ブール値 | なし。 | はい。 |
list
Salesforce.com レコードをリストします。指定された sObject タイプのすべてのフィールドを戻します。
構文
<Action>list</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"limit": max-number-of-records,
"offset": record-index-at-which-to-begin-response-set
}]]></Input>
例
<Action>list</Action>
<Input><![CDATA[{
"sobject": "Account",
"limit": 1000,
"offset": 0
}]]></Input>
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
sobject | リストするレコードの sObject タイプ。 | 文字列 | なし。 | はい。 |
limit | 返されるレコードの最大数。 | Integer | 1000 | いいえ。 |
offset | リストするレコードのオフセット。 | Integer | 0 |
いいえ。 |
レスポンス
JSON 形式でリストされる sObject を含む records
配列。
{
records: [
{ sobject-json },
{ sobject-json }
]
}
del
指定された ID のレコードを削除します。
構文
<Action>del</Action>
<Input><![CDATA[{
"sobject": records-sObject-type,
"ids":[ IDs-of-records-to-retrieve ]
}]]></Input>
例
<Action>del</Action>
<Input><![CDATA[{
"sobject": "Account",
"ids":["0011U00000LQ76KQAT"]
}]]></Input>
リクエスト パラメータ
パラメータ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
sobject | 削除するレコードの sObject タイプ。 | 文字列 | なし。 | はい。 |
ids | 削除する sObject ID レコードの配列。最大数は 1,000 です。 | 配列 | なし。 | はい。 |
レスポンス
オペレーションの結果を含む results
配列。
{
results:[
{ id: '0011U00000LQ76KQAT', success: true, errors: [] },
{ id: '0011U00000LQ76LQAT', success: true, errors: [] }
]
}
プロパティ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
results[*].id | 指定されたレコードの sObject ID。 | 文字列 | なし。 | はい。 |
results[*].success | レコードに対するオペレーションが成功した場合は true 。 |
ブール値 | なし。 | はい。 |
results[*].errors | 実行中に発生したエラーの配列(ある場合)。 | 配列 | なし。 | はい。 |
getAccessToken
Salesforce.com API アクセス トークンを取得します。REST API に対するクエリの実行に使用されます。
構文
<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>
リクエスト パラメータ
なし。
レスポンス
アクセス トークン(JSON 形式)。
{
"accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
"scope":"api",
"instanceUrl": "https://na85.salesforce.com",
"id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
"tokenType": "Bearer"
}
プロパティ | 説明 | 型 | デフォルト | 必須 |
---|---|---|---|---|
accessToken | アクセス トークン。 | 文字列 | なし。 | はい。 |
スコープ | トークンからアクセスできるスコープ。 | 文字列 | なし。 | はい。 |
instanceUrl | Salesforce org で使用されるインスタンスの URL。 | 文字列 | なし。 | はい。 |
id | 接続アプリケーションの ID。 | 文字列 | なし。 | はい。 |
tokenType | アクセス トークンのタイプ。 | 文字列 | ベアラー | はい。 |
構成リファレンス
この拡張機能を API プロキシで使用するように構成してデプロイする場合は、以下のプロパティを使用します。
拡張機能の共通プロパティ
すべての拡張機能には次のプロパティがあります。
プロパティ | 説明 | デフォルト | 必須 |
---|---|---|---|
name |
この拡張機能に付ける名前。 | なし | ○ |
packageName |
Apigee Edge から提供された拡張機能パッケージの名前。 | なし | ○ |
version |
拡張機能を構成する拡張機能パッケージのバージョン番号。 | なし | ○ |
configuration |
追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 | なし | ○ |
この拡張機能パッケージのプロパティ
この拡張機能に固有の以下の構成プロパティに値を指定します。
プロパティ | 説明 | デフォルト | 必須 |
---|---|---|---|
承認サーバーの URL | Salesforce から承認を得るときに使用する URL。通常、これは https://login.salesforce.com です。 |
なし。 | はい。 |
接続アプリケーションのコンシューマ キー | 作成した接続アプリケーションに対して Salesforce から提供されたコンシューマ キー。コンシューマ キーの取得については、前提条件の手順をご覧ください。 | なし。 | はい。 |
認証情報 | Apigee Edge コンソール内で入力する場合は、上記の手順で作成した salesforce.key ファイルの内容です。Management API で設定される場合、salesforce.key ファイルから生成された base64 エンコード値になります。 | なし。 | はい。 |
Salesforce ユーザーの名前 | 作成した接続アプリケーションに関連付けられているユーザー名。Salesforce 拡張機能はこれを使用して Salesforce から承認を得ます。 | なし。 | はい。 |