2

YouTube API を使用して YouTube に動画を自動的にアップロードする方法をセットアップしようとしています。アプリケーションでは、YouTube による処理のために動画をアップロードする必要があります。現在、私は oauth2.0 ピースをセットアップしており、ユーザーをリダイレクトして自分の情報でログインすることができます。ただし、指定したリダイレクト URI を使用してユーザーがサイトにリダイレクトされると、URL の末尾にあるカスタム フィールドを受け入れることができる必要があります。現在、Web サーバーはユーザーを必要なページにリダイレクトするだけですが、認証に関して YouTube から返されたすべての情報を取り除きます。私はPHPについてまったく詳しくありませんが、この問題を解決する方法になるのではないかと思います。基本的に、追加情報が保持されている Web サイトのページにユーザーをリダイレクトして、それを使用できるようにしたいと考えています。ご協力いただきありがとうございます。

http://ocf.berkeley.edu/~gregory/youtubeTestCode/indexRedirect#access_token=ya29.AHES6ZS8kOZN2T59fKpoUE0t7roUXqTPWDAwTMvrhZ5TjlZO57JZNQ&token_type=Bearer&expires_in=3600

リダイレクトの形式は、http: //ocf.berkeley.edu/~gregory/youtubeTestCode/indexRedirect の後に #access_token=ya9232.jdfka7327293&token_type=Bearer&expires_in=3600 が続きます。

ただし、この特定の URL を持つページはありません..

4

1 に答える 1

0

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 にお任せします。

  1. PHP でパラメーターを読み取る (ヒント - $_GET['paramter name'] を使用)
  2. CURL を使用して POST メッセージを Google に送信します。

別の方法として、YouTube SDK for PHP を確認することもできます。これらは、POST ビットと GET ビットを含む作成済みのライブラリです。しかし、これは複雑になる可能性のある「Zend」と呼ばれるものを使用しています。https://developers.google.com/youtube/2.0/developers_guide_php

于 2012-08-29T21:26:30.270 に答える