サーチ…


承認コードを取得するために、ユーザーを認証エンドポイントに送信します。

最初にユーザーをTwitch認証エンドポイントに送信します。このURLは、基本認証URL( https://api.twitch.tv/kraken/oauth2/authorize )と、要求しているものを定義するクエリ文字列パラメータで構成されています。必要なパラメータは、 response_typeclient_idredirect_uri 、およびscopeです。

承認コードフローの場合、 response_typeパラメータは常にcode設定されcode 。これは、Twitch APIから認証コードをリクエストしていることを示します。

redirect_uriは、アプリケーションが要求したスコープを承認した後にリダイレクトされる場所です。これは、あなたのツイッチアカウントの接続ページに登録したものと一致する必要があります

client_idは、アプリケーションの一意の識別子です。 [接続]ページでクライアントIDを確認することもできます。

scopeは、ユーザーに代わってアクセス権を持つものを定義します。アプリケーションを機能させるために必要な最小限のものだけを要求してください。スコープのリストは、 Twitch API GitHubで見つけることができます。

stateパラメータは、サイト間のスクリプト攻撃から保護するためにもサポートされています。ユーザーがアプリケーションを承認すると、 stateパラメータがredirect_uriに含まれます。

  https://api.twitch.tv/kraken/oauth2/authorize
    ?response_type=code
    &client_id=[your client ID]
    &redirect_uri=[your registered redirect URI]
    &scope=[space separated list of scopes]
    &state=[your provided unique token]

クエリ文字列から認証コードを取得する

ユーザーが認可エンドポイントに行くと、要求したスコープに対してアプリケーションの許可を求めるメッセージが表示されます。彼らはこれを拒否することができるので、あなたのコードでこれを考慮に入れる必要があります。アプリケーションへのアクセスを許可した後、ユーザーはredirect_uriで指定したURLにredirect_uriます。クエリ文字列にcodeパラメータ(OAuthトークンと交換できる認証コード)が追加されました。

<?php
  $authCode = $_GET['code'];
?>

OAuthトークンのコードを交換する

承認コードを取得したので、トークンエンドポイント( https://api.twitch.tv/kraken/oauth2/token )にPOSTを実行してOAuthトークンを取得できます。 JSONでエンコードされたアクセストークン、更新トークン、およびユーザーが承認したスコープのリストが表示されます。このトークンを使用して、ユーザーの代わりに認証された要求を作成できるようになりました。

<?php
  $authCode = $_GET['code'];

  $parameterValues = array(
    'client_id' => '...',
    'client_secret' => '...',
    'grant_type' => 'authorization_code',
    'redirect_uri' => 'http://localhost/',
    'code' => $authCode
  );

  $postValues = http_build_query($parameterValues, '', '&');

  $ch = curl_init();
    
  curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => 'https://api.twitch.tv/kraken/oauth2/token',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => $postValues
  ));
            
  $response = curl_exec($ch);
  curl_close($ch);

  echo $response;
?>


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow