このクイックスタートガイドとNode.jsのサンプルアプリを使って、アプリのOAuthを設定する方法をご紹介します。
*でマークされたフィールドは必須です。
パラメーター | 説明 | 例 |
---|---|---|
client_id * | クライアントIDによってアプリが識別されます。アプリの設定ページで確認します。 | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
scope * | URLエンコードされたスペース(%20 )で区切られた、アプリが要求しているスコープ。 | oauth%20crm.objects.contacts.read |
redirect_uri * | アプリが要求したスコープの認証後にユーザーがリダイレクトされるURL**。本番環境アプリでは、https が必須です**。 | https://www.example.com/auth-callback |
optional_scope | アプリにとって任意のスコープ。選択されたHubSpotポータルがその製品にアクセスできない場合は破棄されます。 | automation |
state | リダイレクトされてアプリに戻ってきたユーザーの状態を維持するために使用できる一意の文字列値。 | WeHH_yy2irpl8UYAvv-my |
userA.integration.com
やuserB.integration.com
など)にリダイレクトする必要がある場合があります。これを行うには、state
パラメーターを使用して、ユーザー状態に関する詳細情報をエンコードします。
1.Stateパラメーターのnonce値を生成して保存します。
2.Nonceをキーとして使用して、ユーザーの状態をローカルデータストアに保存します。
3.認証URLに、状態パラメーターとしてnonce値を含めます。
4.ユーザーが認証され、リダイレクトURLにリダイレクトされたら、stateパラメーターを検証し、保存されたユーザー状態を取得するためのキーとして使用します。
5.そこから、必要に応じてユーザーをリダイレクトします(例:ユーザー固有のURLに再度リダイレクトする)。
GET
リクエストを認証URLで指定されたリダイレクトURIに送信します。問題が発生せず、ユーザーがアクセス要求を承認した場合、リダイレクトURIに対するリクエストがcode
クエリーパラメーター付きで返されます。ユーザーがアクセス権を付与しなかった場合、リクエストは送信されません。
例:
POST
リクエストをhttps://api.hubapi.com/oauth/v1/token
に送信します(以下に記載の値を使用)。このステップの詳細については、このリファレンスドキュメントを参照してください。
パラメーター | 説明 | 例 |
---|---|---|
grant_type | authorization_code である必要があります | authorization_code |
client_id | アプリのクライアントID | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
client_secret | アプリのクライアントシークレット | 7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d |
redirect_uri | ユーザーがアプリを認証した場合のリダイレクトURI | https://www.example.com/auth-callback |
code | OAuth 2.0サーバーから受信した認証コード | 5771f587-2fe7-40e8-8784-042fb4bc2c31 |
expires_in
フィールドで示された秒数の経過後に期限切れになります(現時点では30分)。新しいアクセストークンの取得の詳細については、後述のOAuthトークンのリフレッシュセクションをご参照ください。Authorization
HTTPヘッダーに指定します。具体的には、リファレンスドキュメントで確認できます。
例:
crm.objects.contacts.read
スコープを対象としたリクエストを許可したとしても、生成されるアクセストークンでは、このユーザーが担当するコンタクトだけでなく、アカウント内の全てのコンタクトを表示できます。expires_in
フィールドに指定されます。
アプリは受信したリフレッシュトークンを新しいアクセストークンと交換できます。そのためには、URL形式でエンコードされたPOST
リクエストをhttps://api.hubapi.com/oauth/v1/token
に送信します。その際に、以下の値を使用します。このステップの詳細については、リファレンスドキュメントを確認してください。
パラメーター | 説明 | 例 |
---|---|---|
grant_type | refresh_token である必要があります | refresh_token |
client_id | アプリのクライアントID | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
client_secret | アプリのクライアントシークレット | 7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d |
redirect_uri | ユーザーがアプリを認証した場合のリダイレクトURI | https://www.example.com/auth-callback |
refresh_token | ユーザーがアプリを認証したときに受け取るリフレッシュトークン | b9443019-30fe-4df1-a67e-3d75cbd0f726 |