2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

全世界2,800万人以上の開発者に使われているAPIプラットフォームPostmanの記事を書こう by PostmanAdvent Calendar 2023

Day 11

Postman : Salesforceで使う時の処理手順(Salesforceの接続環境を切り替える)

Last updated at Posted at 2023-12-19

Postmanのまとめに戻る

トークンの取得 (新しいトークンを取得することによって Playground を Postman に接続します。)

  1. Salesforceの環境にログインします。
  2. Postman Web アプリケーションにログインします。
  3. コレクションを選択します
  4. Authorizationタブをクリックして、下にスクロールすると Get New Access Tokenがあります。

image.png

5. Get New Access Tolenをクリックします。

image.png

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をクリックします。

image.png

9. Variables タブをクリック

image.png

_endpoint 行の CURRENT VALUE 列に、手順 7 でコピーした instance_url 値を貼り付けます。

入力箇所がよく分からん。 先頭にカーソルをもっていく

image.png

10. Saveボタンをクリックします。

どこにある? 色が薄くて探しにくい。
image.png

何か変更した時だけ機能するようです。

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)
})

探してみると環境変数が使えそうです。

以下のように、playgrandと本番環境の二つを定義します。
接続先に合わせて、クリックしておけば_endpointが上書きされるみたいです。
これで接続先を変えるたびに_endpointの値を設定する手間が省けました。

image.png

コードを使用した 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 に置き換えてください。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?