YouTube には、クライアント側とサーバー側の 2 つの認証方法があります。(実際には他にもありますが、私は他のものを使用したことがありません)。
ドキュメントはhttps://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2ですが、必要な部分を言い換えてみます。
「クライアント側」はあなたが使用しているものです-基本的にはユーザーをURL経由で送信し、Googleに作業を任せてアクセストークンを取得します.
「サーバー側」が必要です(ご想像のとおり)。「&response_type=token」で終わる URL にユーザーを送信するのではなく、変換するには、このビットを「&response_type=code& access_type=offline」に変更します。
コールバックを取得すると、 ?code=4/ux5gNj-_mIu4DOD_gNZdjX9EtOFf があります - # の前にあるので、これを読んでいただければ幸いです
次に、POST を使用してこのコードを Google サーバーに送信すると、トークンが JSON で返されます。前にそのページから取得:
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
code=4/ux5gNj-_mIu4DOD_gNZdjX9EtOFf&
client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&
client_secret=hDBmMRhz7eJRsM9Z2q1oFBSe&
redirect_uri=http://localhost/oauth2callback&
grant_type=authorization_code
応答は次のとおりです。
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
したがって、「比較的」単純に変更しますが、POST を実行するには PHP 部分が必要です。これには秘密鍵 (Javascript を介して明らかにしたくない) が必要なためです。
次の方法については、Google にお任せします。
- PHP でパラメーターを読み取る (ヒント - $_GET['paramter name'] を使用)
- CURL を使用して POST メッセージを Google に送信します。
別の方法として、YouTube SDK for PHP を確認することもできます。これらは、POST ビットと GET ビットを含む作成済みのライブラリです。しかし、これは複雑になる可能性のある「Zend」と呼ばれるものを使用しています。https://developers.google.com/youtube/2.0/developers_guide_php