Salesforce Connect カスタムアダプタのコールアウト
他の Apex コードと同様に、Salesforce Connect カスタムアダプタもコールアウトを実行できます。外部システムへの接続に認証が必要な場合は、コールアウトに認証パラメータを組み込みます。
認証パラメータは、ConnectionParams オブジェクトでカプセル化され、DataSource.Connection クラスのコンストラクタに提供されます。
たとえば、接続に OAuth アクセストークンが必要な場合は、次のようなコードを使用します。
1public HttpResponse getResponse(String url) {
2 Http httpProtocol = new Http();
3 HttpRequest request = new HttpRequest();
4 request.setEndPoint(url);
5 request.setMethod('GET');
6 request.setHeader('Authorization', 'Bearer ' +
7 this.connectionInfo.oauthToken);
8 HttpResponse response = httpProtocol.send(request);
9 return response;
10}接続に基本的なパスワード認証が必要な場合は、次のようなコードを使用します。
1public HttpResponse getResponse(String url) {
2 Http httpProtocol = new Http();
3 HttpRequest request = new HttpRequest();
4 request.setEndPoint(url);
5 request.setMethod('GET');
6 string encodedHeaderValue = EncodingUtil.base64Encode(Blob.valueOf(
7 this.connectioninfo.username + ':' +
8 this.connectionInfo.password));
9 request.setHeader('Authorization', 'Basic ' + encodedHeaderValue);
10 HttpResponse response = httpProtocol.send(request);
11 return response;
12}Salesforce Connect カスタムアダプタのコールアウトエンドポイントとしての指定ログイン情報
Salesforce Connect カスタムアダプタは、必要に応じて、Salesforce に保存されている適切なログイン情報を取得します。ただし、Apex コードはこれらのログイン情報をすべてのコールアウトに適用する必要があります。この例外は、指定ログイン情報をコールアウトエンドポイントとして指定する場合です。指定ログイン情報を使用すると、Salesforce が認証ロジックを処理できるため、コードで処理する必要がありません。
カスタムアダプタのすべてのコールアウトが指定ログイン情報を使用する場合は、外部データソースの [認証プロトコル] 項目を [認証なし] に設定できます。指定ログイン情報は、コールアウトに適切な証明書を追加し、標準の認証ヘッダーも追加できます。また、指定ログイン情報として定義されている Apex コールアウトエンドポイントにリモートサイトを定義する必要はありません。