🐣

SalesForceのRefresh Token取得方法

2020/10/21に公開

概要

SalesForceでrefresh_tokenを取得しようとしたが、ハマってしまったため記事として残しておく。
たぶんこの記事に辿り着く人はSalesForceの「更新トークンフロー」を読んで、結局どうやって取得すんねんってなった人ではないだろうか・・・。

結論

webサーバ認証フローを利用することで取得できる
※ 利用しているAPIのバージョンはv47.0です

手順

SalesForce側で接続アプリケーションの設定をする

  1. SalesForceにログインして設定を押す

  2. アプリケーションマネージャから接続アプリケーションを選択

  3. 接続アプリケーションの作成
    事前準備としてlocalでもいいのでWebサーバを立ち上げておく

  4. client_idとclient_secretの確認
    アプリケーションの作成が完了、もしくはアプリケーション一覧から「参照」を押すとclient_idとclient_secretを確認できる

アプリケーションの認証

パラメータをつけて下記に「ブラウザ」でアクセスする
https://login.salesforce.com/services/oauth2/authorize

Key Value
response_type code
client_id *****
redirect_uri http%3A%2F%2Flocalhost

SalesForceにログインするとアプリケーションへのアクセス許可を求められるので許可をする

許可するとリダイレクトされて、URLにcode(有効時間15分程度)が返ってくる

refresh_tokenの取得

認証時に取得したcode&その他必須パラメータをつけて下記のURLに「POST」でアクセスする
※ 下記画像ではpostmanを利用していますが、terminalからcurlでも取得できます。
https://login.salesforce.com/services/oauth2/token

Key Value
grant_type authorization_code
code *****
client_id *****
client_secret *****
redirect_uri http://localhost

無事にrefresh_tokenを取得できました。

Discussion