VonageビジネスコミュニケーションAPIへの認証

一旦 アプリケーションの作成そして Provisioning API にサブスクライブした アクセストークンを作成する準備ができました。VonageビジネスコミュニケーションAPIは以下を使用します。 OAuth 認証のため。

認証キーの作成

  1. にログインする。 ビジネス・コミュニケーション・デベロッパー・ポータル 開発者認証情報を使用してください。

  2. 選択 Applications をクリックしてください。

  3. について アプリケーション ページで、テーブルからアプリケーションを探し、アプリケーションをクリックします。 名称 リンク

  4. を選択する。 プロダクション・キー 左のナビゲーションメニューにある

    Screenshot showing the Production Keys tab of the My Applications page

    注:デフォルトのグラントタイプは Password.その グラントタイプ は、OAuth がアクセストークンを生成する際に使用するメソッドです。本番アプリケーションを作成する場合、通常は Code メソッドを使ってリクエストを認証する。リクエストの Refresh Token オプションは、現在のトークンの有効期限が切れたときに新しいトークンを作成します。

  5. もし Code を選択する。 コールバックURL フィールドに、生成されたコードを受け取るためにアプリケーションが使用する有効なコールバックURLを入力します。まだアプリケーションを作成していない場合は、次のように入力します。 http://localhost テストする準備ができたら、正しいURLを入力してください。

    注意: アプリケーションでパスワード・グラント・タイプを使用する場合は、認証コード・フローを使用する場合のように、トークンを取得するためにコールバックURLを使用する必要はありません。パスワードグラントを使用する場合は、空白のままにしておくことができます。

  6. をクリックする。 鍵の生成 ボタンをクリックする。これにより コンシューマー・キー そして 消費者の秘密 アプリケーションがトークンを要求する際に使用します。

補助金の種類

Vonage Business Communications は、アクセストークンを生成するために以下のグラントタイプをサポートしています。

  • 認証コード - 認証コード付与タイプは、機密クライアントおよびパブリッククライアントがアクセストークンと認証コードを交換するために使用します。ユーザーがリダイレクトURL経由でクライアントに戻った後、アプリケーションはURLから認可コードを取得し、それを使ってアクセストークンを要求します。
  • パスワード付与 - パスワード付与タイプは、ユーザーの認証情報をアクセストークンと交換する方法です。

パスワード付与タイプをいつ使うか?

パスワード付与タイプでは、アプリケーションがユーザーのパスワードを収集する必要があります。パスワード付与タイプは、ユーザー資格情報の収集が不要なサーバー間アプリケーションを有効にする場合にのみ使用することをお勧めします。

  1. を見てみよう。 エンドポイントの例 そして アクセストークンの生成 のサンプルを参照して、認証コードを要求し、アクセストークンと交換する方法を学んでください:

本番環境では 認証コード グラント・タイプ (Codeの「マイ・アプリケーション」タブに表示される唯一のオプションです。 apimanager.uc.vonage.com.その Code グラントタイプでは、アプリケーションに有効なコールバック URL を実装して、Vonage サーバから認証コードを取得し、トークンと交換する必要があります。認可リクエストとトークン・リクエストの作成方法については、My Applications タブの Endpoint examples を参照してください。

認証コード付与による認証

警告だ: SSOは現在サポートされていません

次の例は、authorize エンド・ポイントを介して authorization_code を取得する方法を示しています。

https://api.vonage.com/authorize?scope=openid&response_type=code&redirect_uri=$REDIRECT_URI&client_id=$CONSUMER_KEY
  • REDIRECT_URI - 認証後にユーザーをリダイレクトするURL。
  • CONSUMER_KEY - 上記ステップ5で生成したコンシューマー・キー

次の例は、トークン・エンド・ポイントを介して認証コードとトークンを交換する方法を示しています。

curl --request POST 'https://api.vonage.com/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Authorization: Basic $AUTHORIZATION' \ --data-urlencode 'grant_type=authorization_code' \ --data-urlencode 'code=$AUTHORIZATION_CODE' \ --data-urlencode 'redirect_uri=$REDIRECT_URI'
  • AUTHORIZATION_CODE - によって受信されたコード。 redirect_uri ログイン成功後
  • REDIRECT_URI - 認証コード交換後にユーザーをリダイレクトするURL。
  • AUTHORIZATION - アプリケーション認証情報をBase64エンコードしたトークン。 $CONSUMER_KEY:$CONSUMER_SECRET.

トークンを交換すると、次のようなJSONレスポンスが返されます。 access_token が埋め込まれています。Account API、Extension API、User APIを使用するには、このトークンが必要です:

{
   "access_token":"xyz123eyJ4NQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFemhrWmciLCJraWQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFNemhrWmciLCJhbGciOiJSUzI1NiJ9..gs7JO2RLPFIld7NXM9gnOy9CYaLs_EYXJJilxX76MFBiidoiG9sIW4RkeHLvDVLyFP1eVd_Pt7000wAr13mcXn-6x6D9oJeAH_Iz8nbzd3vmWDZ8VMHf1SueiAaChfvH0yLvwu02sp-QU-tljGYBTJ8Pr1jWQIG-o39XRrBSMis",
   "refresh_token":"dde2a67f-d99f-3f03-810b-1fcae59245de",
   "scope":"default",
   "token_type":"Bearer",
   "expires_in":86400
}

パスワード付与による認証

VBC APIドキュメントのすべてのコード・スニペットでは パスワード付与タイプ の代わりに authorization_code を使って簡単に実行できる。このグラント・タイプでは、コールバックURLを実装する必要はありません。代わりに、VBCのユーザー名とパスワードを入力してトークンをリクエストします。

例中の以下のプレースホルダーを独自の値に置き換えてください:

  • VBC_USERNAME - Vonageビジネスコミュニケーションズのユーザー名
  • VBC_PASSWORD - Vonageビジネスコミュニケーションのパスワード
  • CONSUMER_KEY - 上記ステップ5で生成したコンシューマー・キー
  • CONSUMER_SECRET - 上記のステップ5で作成した消費者秘密

注: パスワード・グラントを使用する場合は、次のように追加する必要があります。 @vbc.prod をユーザー名に追加してください。

警告だ: トークンリクエストには、VBC Developerアカウントの認証情報(*.api)を使用しないでください。トークンのリクエストには、VBC User の認証情報を使う必要があります。 VBC_USERNAME そして VBC_PASSWORD.

curl --request POST 'https://api.vonage.com/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'scope=openid' \ --data-urlencode 'username=$VBC_USERNAME@vbc.prod' \ --data-urlencode 'password=$VBC_PASSWORD' \ --data-urlencode 'client_id=$VBC_CLIENT_ID' \ --data-urlencode 'client_secret=$VBC_CLIENT_SECRET'

これを実行すると、次のようなJSONレスポンスが返されます。 access_token が埋め込まれています。Account API、Extension API、User APIを使用するには、このトークンが必要です:

{
    "access_token": "xyz123eyJ4NQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFemhrWmciLCJraWQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFNemhrWmciLCJhbGciOiJSUzI1NiJ9..gs7JO2RLPFIld7NXM9gnOy9CYaLs_EYXJJilxX76MFBiidoiG9sIW4RkeHLvDVLyFP1eVd_Pt7000wAr13mcXn-6x6D9oJeAH_Iz8nbzd3vmWDZ8VMHf1SueiAaChfvH0yLvwu02sp-QU-tljGYBTJ8Pr1jWQIG-o39XRrBSMis",
    "refresh_token": "abc123-5903-3513-8d27-333daf581837",
    "scope": "openid",
    "id_token": "abc123eyJ4NQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFemhrWmciLCJraWQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFNemhrWmciLCJhbGciOiJSUzI1NiJ9..gs7JO2RLPFIld7NXM9gnOy9CYaLs_EYXJJilxX76MFBiidoiG9sIW4RkeHLvDVLyFP1eVd_Pt7000wAr13mcXn-6x6D9oJeAH_Iz8nbzd3vmWDZ8VMHf1SueiAaChfvH0yLvwu02sp-QU-tljGYBTJ8Pr1jWQIG-o39XRrBSMis",
    "token_type": "Bearer",
    "expires_in": 82566
}

トークンの有効期限

  • アクセス・トークン - アクセストークンの有効期限は24時間(86400秒)です。アクセストークンの有効期限が切れた後、新しいアクセストークンを要求するには、リフレッシュトークンとリフレッシュグラントタイプを使用する必要があります。
  • リフレッシュ・トークン - リフレッシュ・トークンの有効期限は7日間(604800秒)です。アクセストークンとリフレッシュトークンを交換した後、リフレッシュトークンは使用できなくなり、新しいリフレッシュトークンが提供されます。有効期限内にリフレッシュトークンを使用しなかった場合は、再認証が必要となります。

リフレッシュ・トークンの使用

アクセストークンの有効期限が切れた場合は、リフレッシュトークンを使用して新しいアクセストークンを生成する必要があります。リフレッシュ・トークンは、最初に /token エンドポイントである。

アクセストークンを再生成する:

curl --location --request POST 'https://api.vonage.com/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=refresh_token' \ --data-urlencode 'client_id=$VBC_CLIENT_ID' \ --data-urlencode 'client_secret=$VBC_CLIENT_SECRET' \ --data-urlencode 'refresh_token=$REFRESH_TOKEN'

例中の以下のプレースホルダーを独自の値に置き換えてください:

  • VBC_CLIENT_ID - 開発者アプリケーションのクライアントID
  • VBC_CLIENT_SECRET - 開発者アプリケーションからの秘密
  • REFRESH_TOKEN - アクセストークンを取得するための最初のリクエストのリフレッシュトークン。

これは新しいアクセストークンとリフレッシュトークンを返します。

{
   "access_token": "xyz123eyJ4NQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFemhrWmciLCJraWQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFNemhrWmciLCJhbGciOiJSUzI1NiJ9..gs7JO2RLPFIld7NXM9gnOy9CYaLs_EYXJJilxX76MFBiidoiG9sIW4RkeHLvDVLyFP1eVd_Pt7000wAr13mcXn-6x6D9oJeAH_Iz8nbzd3vmWDZ8VMHf1SueiAaChfvH0yLvwu02sp-QU-tljGYBTJ8Pr1jWQIG-o39XRrBSMis",
    "refresh_token": "abc123-5903-3513-8d27-333daf581837",
    "scope": "openid",
    "id_token": "abc123eyJ4NXQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFNemhrWmciLCJraWQiOiJNemcxTnpZeU5UTXhPR1kxTlRNMU1HUTBPR1ZsTVRnM05XRXlZamRpWVdRNE1XSTFNemhrWmciLCJhbGciOiJSUzI1NiJ9..kpFXRg4qSW9sntliysg-3EGO8KwZ8Vk5jGvOwqq0gJEyPQHL5BQKKrF799VL6Z9OJfCne564N42UWnrQqUmNyU0q8l0td1E3zPA0L5iQQEbaVsbxRf5NCZUwYY9Pb7bXjINCiGF4Xy7wCw2SRpv9iQvg3G68qI5Z8f_25QmxSTY",
    "token_type": "Bearer",
    "expires_in": 86400
}

それ以降のすべてのAPIリクエストには、このアクセストークンを使用する必要があります。このアクセストークンの有効期限が切れた場合は、最新のリフレッシュトークンを使用して新しいアクセストークンを生成する必要があります。

次のステップ

これでアクセストークンの作成は完了です。 APIリクエストを行う.