Salesforce 拡張機能

現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください
情報

バージョン: 1.0.3

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)] で [Consumer Key] を探し、その値を拡張機能の構成で使用する安全な場所にコピーします。

拡張機能がアクセスできるように接続済みアプリを設定する

Salesforce 拡張機能が Salesforce にアクセスするには、その拡張機能が Salesforce に接続できる Salesforce 接続アプリを作成する必要があります。

Salesforce の接続アプリケーションは、外部アプリケーションが API を介して Salesforce に接続する方法です。

接続済みのアプリをセットアップするには

  1. Salesforce にログインします。
  2. 右上の歯車アイコンをクリックしてから [Setup] をクリックします。
  3. 左側のナビゲーションで、[Apps] > [App Manager] を開きます。
  4. [App Manager] ページで [New Connected App] をクリックします。
  5. [基本情報] で、必須項目を入力します。値は記帳のためのもので、拡張機能では使用されません。
  6. [API (Enable OAuth Settings)] で [Enable OAuth Settings] チェックボックスを選択します。
  7. 拡張機能では使用されませんが、[Callback 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)プラットフォームです。顧客管理は、顧客情報と顧客とのやり取りをより適切に管理することで、企業が顧客のニーズを理解し、問題を解決するのに役立ちます。これらすべてを、任意のデスクトップやデバイスから常にアクセスできる単一のプラットフォーム上で実現します。

アクション

挿入

レコードを 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 タイプ 文字列 なし。 はい、できます。
records JSON 形式の sObject レコードの配列。最大: 1,000。 配列 なし。 はい、できます。
allOrNone true: 更新の一部が失敗した場合、更新全体を失敗させます。 ブール値 false 違います

レスポンス

挿入オペレーションの結果を含む results 配列。

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
プロパティ 説明 種類 デフォルト 必須
results[*].id 新しいレコードに対して生成された sObject ID。 文字列 なし。 はい、できます。
結果 [*].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 タイプ 文字列 なし。 はい、できます。
records JSON 形式の sObject レコードの配列。更新する各レコードには、レコードの ID 値を含める必要があります。最大: 1,000。 配列 なし。 はい、できます。
allOrNone true: 更新の一部が失敗した場合、更新全体を失敗させます。 ブール値 false 違います

レスポンス

更新の結果を含む results 配列。

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
パラメータ 説明 種類 デフォルト 必須
results[*].id 更新されたレコードに対して生成された sObject ID。 文字列 なし。 はい、できます。
結果 [*].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 タイプ 文字列 なし。 はい、できます。
ids 取得する sObject ID レコードの配列。最大: 1,000。 配列 なし。 はい、できます。
allOrNone true: リクエストの一部が失敗した場合にオペレーション全体を失敗させます。 ブール値 false 違います

レスポンス

JSON として表される sObject の records 配列。プロパティ値が 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 JSON で sObject として返されたレコードの配列。最大: 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 タイプ 文字列 なし。 はい、できます。
上限 返されるレコードの最大数。 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 タイプ 文字列 なし。 はい、できます。
ids 削除するレコードの sObject ID の配列。最大: 1,000。 配列 なし。 はい、できます。

レスポンス

オペレーションの結果を含む results 配列。

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
プロパティ 説明 種類 デフォルト 必須
results[*].id 指定されたレコードの sObject ID。 文字列 なし。 はい、できます。
結果 [*].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 組織で使用されるインスタンスの 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 から承認を取得します。 なし。 はい、できます。