Trailheadを見ながら、Postman × SalesforceによるAPI実行を試してみました。
Quick Start: Connect Postman to Salesforce | Salesforce Trailhead
Postmanにログイン
Postmanは様々なAPI処理を簡単に試すことができるサービスです。アカウントを作成して利用できます。
ログインするとこんな感じ。
ヘッダー部分からワークスペースを作成して動作検証の環境を用意するイメージです。
Salesforce側の設定
PostmanからSalesforceのAPIを呼び出すには事前の準備が必要となります。まずは対象のSalesforce組織にログインして「CORS」の設定ページにアクセスします。
新規ボタンからオリジンを許可の登録ページに移動して、『https://*.postman.com』と登録します。
このように設定されます。
先程と同じ手順で、『https://*.postman.co』と登録します。2つの値を登録できたら事前準備は完了です。(ユーザ設定でタイムゾーンや地域の設定を変更していますが、別件で変更したものをそのままにしているだけなので、Postmanの件とは関係ないです。)
Postmanのワークスペース用意
ヘッダーメニューのWorkspaceを選択します。Create workspaceボタンをクリックして作業用のワークスペースを用意します。
Black Workspaceで進めて問題ありません。
Nameには「SalesforceCollection」と設定します。これはTrailheadで指定されている内容の値をそのまま使いました。実際には任意の値で問題ないと思います。誰がアクセスできますか?とのところは「Person」と指定します。自分だけアクセスできる形です。
上記の内容で入力してCreateボタンをクリックするとワークスペースの作成が実行されます。作成されたワークスペースの画面はこのようになります。
作成後はヘッダーメニューから選択可能になります。(複数のワークスペースを切り替えられるイメージ)
右側のWorkspace Settingsボタンで設定の調整や削除の実行ができるようです。
これでワークスペースの枠部分を用意できました。
Fork the Salesforce Collection
Postmanの中でSalesforceチームが公開しているワークスペースがあります。
Salesforce APIを呼び出すのに必要な設定が用意されているワークスペースです。例えば「Salesforce Platform APIs」→「REST」と選択するとREST APIに関する情報が用意されています。
いろいろあるAPIの中から今回使用する「Salesforce Platform APIs」の右側のアイコン「・・・」みたいなやつを選択します。メニューの中にある「Create a fork」を選択します。
Fork Labelの入力が求められます。任意の値で登録します。
Forkの操作を実行すると先程作成したワークスペースの中にSalesforce Platform APIsの情報がそのまま作成されます。これで自分の環境でSalesforceAPIを実行するための準備ができました。自分のワークスペースなので何か操作ミスして壊してもまたフォークし直せばいい感じです。
というような内容がTrialheadにまとまっていました。
PostmanとSalesforceを接続
PostmanからSalesforceAPIを実行するために認証設定を実施します。設定前の状態では「No Environment」と表示されます。
手順1 : Salesforce Platform APIsを選択
まずはSalesforce Platform APIsを選択したところからスタートです。
Overviewから始まるメニューがあります。その2番目のAuthorizationを選択します。
Typeの項目でOAuth2.0が選択されていることを確認します。(デフォルトで選択されている)。画面の一番下にGet New Access Tokenボタンがあるのでクリックします。
いつものSalesforce認証画面がポップアップで表示されるので認証します。
これでアクセストークンが作成されます。Token Nameは任意の値に変更しておいた方が良いかもしれません。デフォルトのaccess tokenのままにしておくと次にNew Acess Tokenの操作をしたときに同じ名称で作成されて区別が付きづらくなりそうでした。
※この画面で表示される「instance url」の値はコピーしてメモしておきます。(認証したSalesforce組織のドメインなので忘れた場合はそちらをコピー)
=> https://<***>-dev-ed.trailblaze.my.salesforce.com
Use TokenボタンをクリックするとAuthorizationタブのToken項目に作成したトークンが設定されます。ここについては選択リストで他のトークン変数との切り替えができるようになっていました。
Variables(変数)のタブを開きます。リストの中に_endpointという変数があります。2列目のCURRENT VALUEの欄にアクセストークン作成結果のところに表示されたinstanceURLの値をセットします。
Saveボタンがあるのでクリックして設定変更を保存します。これでPostmanとSalesforceの接続が完了となります。
設定後の動作チェック
RESTの中に『GET Limits』があります。これが一番実行しやすいAPIです。選択するとエンドポイントのURLが表示されるのでSendボタンをクリックします。それでAPIが実行されます。正常に実行できればステータスコード=200となり結果が表示されます。Body / Cookies / Headersとタブ切り替えができるのでそれぞれの結果をチェックできます。
失敗するとエラーメッセージが表示されます。ここで失敗する場合はCROSの設定ができていないか、アクセストークンの設定ができていないか、Variablesのエンドポイントの登録ができていないかという感じになります。
自分が試したときはendpoint登録時に末尾が「.my.salesforce.com」とするべき箇所を「.my.salesforce.com/」と余計な文字をつけていてエラーを出したりとミスがありました。アクセストークンの作成の手順からやり直してみるのが解決しやすい手順になると思います。
補足
Postmanの使い方についてはTrailheadのこちらのモジュールで紹介されています。(この記事の最初のリンクと同じ)
これとは別に次のモジュールもPostmanが必要になる内容となっていました。
使い方確認した際に合わせてチェックしておくと一度の環境構築でまとめて進められると思います。