バージョン: 1.0.1
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)
- [Save] をクリックします。エラーがあった場合は
salesforce.crt
ファイルの再作成とアップロードが必要な場合があります。 - 作成されたアプリケーションのページで [Manage] をクリックします。
- 作成したアプリケーションの [App Manager] ページで [Edit Policies] をクリックします。
- [OAuth policies] で [Permitted Users] プルダウンをクリックし、[Admin approved users are pre-authorized] をクリックします。
- [Save] をクリックします。
- アプリケーションのページに戻り、[Profiles] の下の [Manage Profiles] をクリックします。
[Application Profile Assignment] ページで、このアプリケーションが使用できるユーザー プロファイルのチェックボックスを選択します。
拡張機能の構成で使用するユーザーの名前に対応するプロファイルを必ず選択してください。システム管理者以上の権限を持つユーザーでこのアプリケーションにアクセスできる必要もあります。
Salesforce 内のユーザーのプロファイル設定を確認できます。[Setup] エリアで [Users] > [Users] の順に展開し、拡張機能が表すユーザーを検索して、[Profile] 列でユーザーのプロファイルを見つけます。
[Save] をクリックします。
Salesforce について
Salesforce は顧客管理(CRM)プラットフォームです。顧客管理で顧客情報と対応の管理を強化し、企業による顧客ニーズの把握と問題解決をサポートします。これらの機能すべてを、どのデスクトップやデバイスからもいつでもアクセスできる 1 つのプラットフォーム上で実現します。
アクション
insert
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 | クエリから戻るレコードの数。 | 整数 | なし | ○ |
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 | 返されるレコードの最大数。 | 整数 | 1000 | × |
offset | リストするレコードのオフセット。 | 整数 | 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 | アクセス トークン。 | 文字列 | なし | ○ |
scope | トークンからアクセスできるスコープ。 | 文字列 | なし | ○ |
instanceUrl | Salesforce org で使用されるインスタンスの URL。 | 文字列 | なし | ○ |
id | 接続アプリケーションの ID。 | 文字列 | なし | ○ |
tokenType | アクセス トークンのタイプ。 | 文字列 | Bearer | ○ |
構成リファレンス
この拡張機能を 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 から承認を得ます。 | なし | ○ |