トークンの取得 (新しいトークンを取得することによって Playground を Postman に接続します。)
- Salesforceの環境にログインします。
- Postman Web アプリケーションにログインします。
- コレクションを選択します
- Authorizationタブをクリックして、下にスクロールすると Get New Access Tokenがあります。
5. Get New Access Tolenをクリックします。
6. Salesforceの認証画面で認証します。
7. instance_url が Trailhead Playground を指していることを確認します。このURLをコピーします。 <--重要です。
もしかしたら、lightning.force.comがmy.salesforce.comになっているかもしれませんが、このURLを使います。
コレクション変数の_endpointがmy.salesforce.com でなく、lightning.force.comで終わっている場合はエラーになります
8. Use Tokenをクリックします。
9. Variables タブをクリック
_endpoint 行の CURRENT VALUE 列に、手順 7 でコピーした instance_url 値を貼り付けます。
入力箇所がよく分からん。 先頭にカーソルをもっていく
10. Saveボタンをクリックします。
何か変更した時だけ機能するようです。
Salesforceの接続先を変えるたびに_endpointをinstance_urlを変更しないといけませんね。
自動的に_endpointを変更できないのか?
testのタブに以下を設定しましたが、うまく置き換わりませんでした。pm.responseじゃないよね。
pm.test("An instance url is returned", () => {
pm.expect(pm.response.json()).to.have.property('instance_url')
pm.expect(pm.response.json().instance_url).to.be.a('string')
pm.collectionVariables.set('_endpoint', pm.response.json().instance_url)
})
探してみると環境変数が使えそうです。
- How to set Postman's Authorization property in headers via variables to a value of Null / None?
- 徹底解説:Postmanの変数の利用ガイド
以下のように、playgrandと本番環境の二つを定義します。
接続先に合わせて、クリックしておけば_endpointが上書きされるみたいです。
これで接続先を変えるたびに_endpointの値を設定する手間が省けました。
コードを使用した Salesforce へのログイン
推奨: [私のドメイン] のログイン URL
[私のドメイン] のログイン URL には、会社固有の [私のドメイン] の名前が含まれます。[私のドメイン] の名前は一意であるため、[私のドメイン] のログイン URL を使用するとセキュリティが一層強化されます。
システム管理者は [私のドメイン] の設定を介して、SOAP API コールで組織の [私のドメイン] のログイン URL を使用したログインを要求する場合があります。また、組織が別のインスタンスに移行しても、このログイン URL は引き続き機能します。
こうした理由から、[私のドメイン] のログイン URL を使用してコードで組織にアクセスすることをお勧めします。
コードで [私のドメイン] のログイン URL を使用する場合、1 つの考慮事項があります。[私のドメイン] の名前を変更した場合 (ブランド名や会社名が変更された場合など)、[私のドメイン] のログイン URL が変更されます。この状況では、コード内の以前の [私のドメイン] のログイン URL への参照を更新するまで、コードは機能しません。
API インテグレーションでは、ログイン要求で返された metadataServerUrl または serverURL の値を使用します。Apex で [私のドメイン] のログイン URL のホスト名を取得するには、System.DomainCreator クラスの getOrgMyDomainHostname() メソッドを使用します。[私のドメイン] の変更後にこれらのメソッドは引き続き動作します。
デフォルトの Salesforce ログイン URL
デフォルトの Salesforce ログイン URL (本番組織および Developer Edition 組織の場合は https://login.salesforce.com、Sandbox の場合は https://test.salesforce.com) がコード内で適切に機能します。これらの URL は、組織が別のインスタンスに移行して [私のドメイン] の名前が変更されたときでも、引き続き機能します。
ただし、これらのデフォルトのログイン URL には、会社固有の [私のドメイン] の名前が含まれないため、セキュリティは強化されません。また、システム管理者は [私のドメイン] の設定を介して、SOAP API コールで組織の [私のドメイン] のログイン URL を使用したログインを要求する場合があります。その設定が有効になっている場合、これらのデフォルトのログイン URL は SOAP API コールでは機能しません。
インスタンス化された Salesforce URL
コードを使用するかユーザーとして Salesforce にログインする場合、インスタンス化された URL はお勧めしません。組織が別の Salesforce インスタンスに移行すると、インスタンス化された URL を使用したコードが機能しなくなります。コード内にインスタンス化された URL がある場合は、[私のドメイン] のログイン URL またはデフォルトの Salesforce ログイン URL に置き換えてください。