Salesforceでリフレッシュトークを取得する
Salefoorceで、365日に設定したリフレッシュトークンを取得する例
(1)Salesforceにログイン
(2)Classc UIに変更(Lightningでも可能と思われるがわからないので)
(3)「設定」→画面左ペインで「ビルド-作成-アプリケーション」→右ペインで接続アプリケーションの「新規」を押す
(4)以下の画面の例のように設定する。
(4.1)接続アプリケーション名は “abc”
(4.2)API参照名は”abc”
(4.3)取引責任者は自分のメールアドレス
(4.4)OAuth設定の有効化にチェック
(4.5)選択したOAuthの範囲:テスト時はフルアクセス+いつでも要求を実行(refresh_token…)
注意!! これはサンプルです。実際に利用する際は権限の範囲は検討してください。
(4.6)WEBサーバフローの秘密が必要にチェック
(4.7)開始URLに、自分のSalesforceのURL
以上で保存し、以下の画面の「コンシューマ鍵」「コンシューマの秘密」をコピーする
(5)設定→画面左ペインの「アプリケーションを管理する – 接続アプリケーション」で”abc”を選択
(5.1)ポリシーを編集ボタンを押す
(5.2)更新トークンポリシーで「次の時間が経過したら更新トークンを有効期限切れにする」を365日を設定する。
(6)Salesforceにアクセスしているブラウザ(セッションがあるブラウザ)で以下のURLを入力
https://****.my.salesforce.com/services/oauth2/authorize?response_type=code&client_id=****&redirect_uri=http%3A%2F%2Flocalhost
サーバ名は自分のSalesforceのサーバ
client_idは自分のクライアントID(コンシューマ鍵)
(6.1)以下のように確認画面がでるので「許可」を押す。
(7)以下のようにリダイレクトされるので、code=****の部分を保存
http://localhost/?code=*****
(8)以下のシェルを書いて実行する。
#!/bin/sh CLIENT_ID="コンシューマ鍵" CLIENT_SECRET="コンシューマの秘密" SERVER="自サーバ.my.salesforce.com" CODE="上記 (7)で取得したコード" #GET REFRESH TOKEN curl -X POST https://$SERVER/services/oauth2/token -d "grant_type=authorization_code" -d "client_id=$CLIENT_ID" -d "client_secret=$CLIENT_SECRET" -d "code=$CODE" -d "redirect_uri=http%3A%2F%2Flocalhost"
上記シェルを実行すると以下の結果が取得できる。
{"access_token":"***","refresh_token":"***","signature":"****","scope":"refresh_token full","id_token":"","instance_url":"https://***.my.salesforce.com","id":"https://login.salesforce.com/id/******","token_type":"Bearer","issued_at":"*****"}
上記jsonの、refresh_tokenが取得しようとしたリフレッシュトークンとなる。