#
ドキュメント

Document

自分のための備忘録です。

認証

Salesforce APIの認証を、ブラウザとREST Client(Postman)を使って説明。

Ref. 認証 OAuth 2.0

OAuth 2.0 フロー

1. 接続アプリケーションを作成

場所:設定 > アプリケーション > アプリケーションマネージャー > 新規接続アプリケーション

2. 認証コードを取得

必要情報
  • メソッド:GET
  • エンドポイント:https://login.salesforce.com/services/oauth2/authorize
  • クエリ(必要上は以下3つ)
    • response_typecode
    • client_id:接続アプリケーション > プリケーションマネージャー > 参照 > 接続アプリケーションを管理する > コンシューマ鍵[^1]
    • redirect_uri:接続アプリケーション > プリケーションマネージャー > 参照 > 接続アプリケーションを管理する > コールバック UR

リクエスト例(ブラウザでアクセス):

https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id={{cliend_id}}&redirect_uri=http://localhost:8888
  • 上記URLにブラウザでアクセスするとSalesforce認可画面に遷移
  • 認可すると設定したredirect_uriに認証コードが付与されてリダイレクト

リダイレクト例:

https://locahost:8000?code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

3. アクセストークンを取得

  • メソッド:POST
  • エンドポイント:https://login.salesforce.com/services/oauth2/token
  • ボディ部クエリ
    • grant_type:authorization_code
    • client_secret:アプリケーション > プリケーションマネージャー > 参照 > 接続アプリケーションを管理する > コンシューマの秘密[^1]
    • client_id:接続アプリケーション > プリケーションマネージャー > 参照 > 接続アプリケーションを管理する > コンシューマ鍵[^1]
    • redirect_uri:接続アプリケーション定義 > コールバック URL
    • code2. 認証コードを取得で取得したコード
    • リダイレクトURLに付与された認証コードは、パーセントエンコードされているのでデコードする(例:PHP urldecode())

レスポンス:

{
    "access_token": "0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "refresh_token": "5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "signature": "Cxxxxxxxxxxxxxxxxxxxxxxxx",
    "scope": "refresh_token visualforce wave_api custom_permissions web openid chatter_api id api eclair_api full",
    ...
}    

postman

[^1]: 鍵などの情報は、アプリケーションマネージャーから参照しないと表示されない。アプリケーション > 接続アプリケーション > 接続アプリケーションの管理では、鍵情報などは表示されない。