2016-05-03 15 views
0

基本的に私の目標は、自分のウェブサイトのすべての訪問者が自分のOWNチャンネルにコメントセクションの動画をアップロードできるようにすることです。現在、YouTube OAuthバージョン3 APIを使用しています。問題は3600秒ごとに発生し、YouTubeのコードは期限切れとなり、許可を求めるGoogle OAuthにリダイレクトされます(例:https://accounts.google.com/o/oauth2/auth?client_id=805j8tubb260venakqj8jq3f6hl9eluu.apps.googleusercontent.com)。ボタンが期限切れになるたびに手動で「許可」ボタンをクリックする必要があります。Youtube oAuth 2.0 APIトークンを取得するための永久コード

アクセスを一度許可すると、ウェブサイトの訪問者にアップロードの許可を与えるためにコードを再度取得する必要はありませんか?

答えて

1

documentationのこちらの手順/手順に従っているかどうかを確認してください。

1.インストールされたアプリケーションとして

2.リクエストアクセストークン

3.ユーザーの同意の決定このステップで

  • 、ユーザーにアプリケーションを登録アプリケーションとして、ユーザーとして認可されたAPI要求を行う機能を許可するかどうかを決定します。 Googleの認証サーバーには、アプリケーションの名前と、ユーザーの認証資格情報でアクセスする権限を要求しているGoogle APIサービスが表示されます。ユーザーは、アプリケーションへのアクセスを許可するか、拒否することができます。 Googleの

    5.ここでリフレッシュし、アクセストークン

    6.プロセスの応答や店舗トークン

    のExchange認証コードは、Googleから

4.ハンドルの応答短期間のアクセストークンとリフレッシュトークンを含むJSONオブジェクトを返すことでPOSTリクエストに応答します。

{ 
    "access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc", 
    "token_type" : "Bearer", 
    "expires_in" : 3600, 
    "refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74" 
} 

注:アプリケーションは、アプリケーションの異なる呼び出し の間でアクセス可能であり、安全な、 長寿命の場所に両方の値を格納する必要があります。リフレッシュトークンを使用すると、期限切れのアクセストークンがある場合は、 新しいアクセストークンを取得できます。したがって、 アプリケーションでリフレッシュトークンが失われた場合は、 にOAuth 2.0同意フローを繰り返し、アプリケーションで新しいリフレッシュトークン を取得する必要があります。

アクセストークンは、定期的に有効期限が切れるため、更新する必要があります。アクセストークンが期限切れになると、アプリケーションはリフレッシュトークンを使用して新しい有効なアクセストークンを取得することができます。サーバー側のWebアプリケーション、インストールされたアプリケーション、およびデバイスはすべて、承認処理中にリフレッシュトークンを取得します。ユーザーがアクセス権を取り消した

  • tokens might stop, no longer work or expire する場合という

    注意。

  • トークンは6か月間使用されていません。

  • ユーザーアカウントが特定のトークン要求数を超えました。

+0

こんにちは、ありがとうございました。しかし実際には、問題は自分のウェブサイトのために1時間ごとに同意を出したくないということです。私の場合、訪問者は自分のビデオをアップロードして自分のチャンネルに入れることができます。したがって、毎時間リフレッシュトークンを要求することは問題になります。 –

+0

私は同様のアプリケーションにGoogle .NET APIを使用しており、更新は自動的に行われます。 –

+0

@MikeMeinz hello mike。 PHPが自動リフレッシュトークンを取得することも可能ですか?あなたはどのようにロジックが動作するか考えていますか? –

0

あなたはトークンを取得する方法についてKENdiの指示に従ってください - 彼はかなりまっすぐドキュメントから、それを引っ張りました。しかし、あなたは一度だけそれをしなければなりません。その秘訣は、refresh_tokenをどこかに保存してから、ビデオをアップロードする前に新しいアクセストークンを取得することです。素早く汚れたNodeJSソリューションがあります。

function getAccessToken() { 
    const options = { 
    method: 'POST', 
    uri: 'https://accounts.google.com/o/oauth2/token', 
    form: { 
     client_id: 'YOUR_CLIENT_ID', 
     client_secret: 'YOUR_CLIENT_SECRET', 
     refresh_token: 'YOUR_REFRESH_TOKEN', 
     grant_type: 'refresh_token' 
     } 
    } 

    return request(options) 
     .then(body => JSON.parse(body)); 
} 

getAccessToken.then((token) => uploadSomeYoutubeVideo()); 
関連する問題