Salesforce 拡張機能

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動
情報

バージョン: 1.0.5

Salesforce アカウント内のデータにアクセスします。データを挿入、更新、取得、照会します。

ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。

前提条件

ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。ExtensionCallout ポリシーで API プロキシ経由で拡張機能を使用する前に、次のことを行う必要があります。

  1. RSA x509 秘密鍵/認定資格ペアを作成します。

    拡張機能の構成で秘密鍵(.key)を認証情報として使用します。拡張機能に Salesforce へのアクセス権を付与する接続アプリケーションの作成で証明書(.crt)ファイルを使用します。

    openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
    
    
  2. 接続アプリケーションをセットアップします。

    Salesforce 接続アプリケーションは Salesforce 拡張機能に対するアクセス権を提供します。アプリケーションのセットアップについては下記の手順をご覧ください。

  3. 接続アプリケーションのコンシューマ キーを取得します。拡張機能は、アプリケーションでの認証時にこれを使用します。

    1. Salesforce のセットアップで、左のナビゲーションで [Apps] > [App Manager] の順に進みます。
    2. リストで作成した接続アプリケーションを探します。
    3. アプリケーションの行の右にあるプルダウンから [View] をクリックします。
    4. [API (Enable OAuth Settings)] でコンシューマ キーを検索し、その値を拡張機能の構成で使用する安全な場所にコピーします。

拡張機能によるアクセスのために接続アプリケーションをセットアップする

Salesforce 拡張機能が Salesforce にアクセスする前に、この拡張機能が Salesforce に接続できる Salesforce 接続アプリケーションを作成する必要があります。

Salesforce の接続アプリケーションは、外部アプリケーションが API を経由して Salesforce に接続する方法を提供します。

接続アプリケーションをセットアップするには:

  1. Salesforce にログインします。
  2. 右上の歯車アイコンをクリックしてから [Setup] をクリックします。
  3. 左側のナビゲーションで [Apps] > [App Manager] の順に展開します。
  4. [App Manager] ページで [New Connected App] をクリックします。
  5. [Basic Information] で必要なフィールドに入力します。値は記帳用です。拡張機能では使用されません。
  6. [API (Enable OAuth Settings)] で [Enable OAuth Settings] チェックボックスを選択します。
  7. これが拡張機能で使用されなくてもコールバック URL を入力します。http://localhost/ または他のプレースホルダ ホストを使用できます。
  8. [Use digital signatures] チェックボックスを選択します。
  9. [Use digital signatures] で [Choose File] をクリックし、先に作成した salesforce.crt を見つけてアップロードします。
  10. [Selected OAuth Scopes] セクションで以下を追加し、[Selected OAuth Scopes] に組み込みます。
    • データ(api)にアクセスして管理する
    • リクエストを随時自動的に実行する(refresh_token、offline_access)
  11. [保存] をクリックします。エラーがあった場合は salesforce.crt ファイルの再作成とアップロードが必要な場合があります。
  12. 作成されたアプリケーションのページで [Manage] をクリックします。
  13. 作成したアプリケーションの [App Manager] ページで [Edit Policies] をクリックします。
  14. [OAuth policies] で [Permitted Users] プルダウンをクリックし、[Admin approved users are pre-authorized] をクリックします。
  15. [保存] をクリックします。
  16. アプリケーションのページに戻り、[Profiles] の下の [Manage Profiles] をクリックします。
  17. [Application Profile Assignment] ページで、このアプリケーションが使用できるユーザー プロファイルのチェックボックスを選択します。

    拡張機能の構成で使用するユーザーの名前に対応するプロファイルを必ず選択してください。システム管理者以上の権限を持つユーザーでこのアプリケーションにアクセスできる必要もあります。

    Salesforce 内のユーザーのプロファイル設定を確認できます。[設定] エリアで [ユーザー] > [ユーザー] の順に展開し、拡張機能が表すユーザーを検索して、[プロファイル] 列でユーザーのプロファイルを見つけます。

  18. [保存] をクリックします。

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 から承認を得ます。 なし。 はい。