Salesforce 拡張機能

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

バージョン: 1.0.3

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

このコンテンツでは、この拡張機能を構成して使用するためのリファレンスを提供します。

前提条件

このコンテンツでは、この拡張機能を構成して使用するためのリファレンスを提供します。ExtensionCallout ポリシーを使用して API プロキシから拡張機能を使用する前に、次の操作を行う必要があります。

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

    拡張機能を構成する際に、秘密鍵(.key)を認証情報として使用します。証明書(.crt)ファイルは、拡張機能に Salesforce へのアクセスを許可する接続アプリを作成するときに使用します。

    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. アプリの行の右側にあるプルダウンから [表示] をクリックします。
    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. [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. [選択した OAuth スコープ] セクションで、[選択した OAuth スコープ] の下に次を追加します。
    • データ(api)にアクセスして管理する
    • リクエストを随時自動的に実行する(refresh_token、offline_access)
  11. [保存] をクリックします。エラーがある場合は、salesforce.crt ファイルを再生成してアップロードする必要があります。
  12. 作成されたアプリケーションのページで [Manage] をクリックします。
  13. 作成したアプリのアプリ マネージャー ページで、[Edit Policies] をクリックします。
  14. [OAuth policies] で [Permitted Users] プルダウンをクリックし、[Admin approved users are pre-authorized] をクリックします。
  15. [保存] をクリックします。
  16. アプリケーションのページに戻り、[Profiles] の下の [Manage Profiles] をクリックします。
  17. [アプリケーション プロファイルの割り当て] ページで、このアプリケーションを使用できるユーザー プロファイルのチェックボックスをオンにします。

    拡張機能を構成する際に使用するユーザー名に対応するプロファイルを選択してください。また、少なくともシステム管理者ユーザーがこのアプリケーションにアクセスできることを確認します。

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

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

Salesforce について

Salesforce は顧客管理(CRM)プラットフォームです。顧客関係管理(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 挿入するレコードの 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。 文字列 なし。 はい。
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 JSON 形式の sObject レコードの配列。更新する各レコードには、レコードの 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 実行中にキャッチされたエラーの配列(ある場合)。 配列 なし。 はい。

取得

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 いいえ。

レスポンス

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 クエリによって返されたレコード数。 整数 なし。 はい。
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 一覧表示するレコードの sObject タイプ。 文字列 なし。 はい。
limit 返すレコードの最大数。 整数 1000 いいえ。
offset 一覧表示するレコードのオフセット。 整数 0 いいえ。

レスポンス

リストされた sObject を JSON として含む 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 組織で使用されるインスタンスの URL。 文字列 なし。 はい。
id 接続アプリの ID。 文字列 なし。 はい。
tokenType アクセス トークンの型。 文字列 Bearer はい。

構成リファレンス

API プロキシで使用するためにこの拡張機能を構成してデプロイする場合は、次の手順を行います。

共通の拡張プロパティ

すべての拡張機能には次のプロパティがあります。

プロパティ 説明 デフォルト 必須
name この拡張機能に付ける名前。 なし ○
packageName Apigee Edge から提供された拡張機能パッケージの名前。 なし ○
version 拡張機能を構成する拡張機能パッケージのバージョン番号。 なし ○
configuration 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 なし ○

この拡張パッケージのプロパティ

この拡張機能に固有の次の構成プロパティの値を指定します。

プロパティ 説明 デフォルト 必須
認可サーバーの URL Salesforce から認証を取得する際に使用する URL。通常は https://login.salesforce.com です。 なし。 はい。
接続されているアプリのコンシューマ キー 作成した接続アプリケーションに対して Salesforce から提供されたコンシューマ キー。コンシューマ キーを取得する手順については、前提条件をご覧ください。 なし。 はい。
認証情報 Apigee Edge コンソールに入力する内容は、上記の手順で生成した salesforce.key ファイルの内容です。管理 API 経由で送信される場合、これは salesforce.key ファイルから生成された Base64 エンコード値です。 なし。 はい。
Salesforce ユーザーのユーザー名 作成した接続アプリケーションに関連付けられているユーザー名。Salesforce 拡張機能は、これを使用して Salesforce から承認を取得します。 なし。 はい。