2016-09-28 16 views
2

私はこのようにリフレッシュトークンを手に入れました。それを保つことはできますか?youtube python apiのrefresh_tokenの使い方は?

もしそうなら次回はどうすればブラウザを開く必要はありませんか?

今、私はOAuth2Credentialsオブジェクトを直接作成することを考えていますが、これは正しい方法ですか?

from urllib.parse import urlparse, parse_qs 
from oauth2client.client import flow_from_clientsecrets, OAuth2Credentials 
from oauth2client.file import Storage 
from oauth2client.tools import argparser, run_flow 
from apiclient.discovery import build 
from apiclient.errors import HttpError 
from oauth2client.contrib import gce 
import httplib2 
import webbrowser 

CLIENT_SECRETS_FILE = "bot_credentials.json" 
flow = client.flow_from_clientsecrets(
    CLIENT_SECRETS_FILE, 
    scope=scope, 
redirect_uri='http://127.0.0.1:65010') 
flow.params['include_granted_scopes'] = 'true' 
flow.params['access_type'] = 'offline' 
auth_uri = flow.step1_get_authorize_url() 
webbrowser.open(auth_uri) 
url = input('Please enter the redirected url with code') 
code = get_url_param(url, 'code') 
if code is None: 
    print('there is an error in your redirect link with code parameter, check if it exists') 
    exit() 
print(code) 
credentials = flow.step2_exchange(code[0]) 
print(credentials.to_json())#refresh_token here!!! 

答えて

0

ユーザーがアプリケーションにこれらのリソースへのアクセスを許可することに同意する場合、Googleはアプリケーションにトークンを返します。アプリケーションのタイプによっては、トークンを検証するか、別のタイプのトークンでトークンを交換します。これをチェックしてくださいdocumentation。例えば

、サーバー側のWebアプリケーションは、アクセストークンとトークンリフレッシュに返されたトークンを交換します。アクセストークンは、アプリケーションがユーザーのために要求を許可するようにし、リフレッシュトークンは、元のアクセストークンの有効期限が切れたときにアプリケーションが新しいアクセストークンを取得できるようにします。

基本的に、承認プロセス中にアプリケーションがリフレッシュトークンを取得した場合、そのトークンを定期的に使用して新しい有効なアクセストークンを取得する必要があります。サーバーサイドのWebアプリケーション、インストールされたアプリケーション、およびデバイスは、すべてリフレッシュトークンを取得します。

いつでも、あなたのアプリケーションがユーザーのためにあなたのクライアントのIDを指定し、Googleの承認サーバー、クライアントの秘密、そしてリフレッシュトークンにPOSTリクエストを送信できることhere記載されています。また、grant_typeのパラメータ値をrefresh_tokenに設定する必要があります。

次の例では、この要求を示しています。

POST /o/oauth2/token HTTP/1.1 
Host: accounts.google.com 
Content-Type: application/x-www-form-urlencoded 

client_id=21302922996.apps.googleusercontent.com& 
client_secret=XTHhXh1SlUNgvyWGwDk1EjXB& 
refresh_token=1/6BMfW9j53gdGImsixUH6kU5RsR4zwI9lUVX-tqf8JXQ& 
grant_type=refresh_token 

認証サーバが新しいアクセストークンを含むJSONオブジェクトを返します。

{ 
    "access_token":"1/fFAGRNJru1FTz70BzhT3Zg", 
    "expires_in":3920, 
    "token_type":"Bearer" 
} 

あなたはこのsample on GitHubに確認することができますYouTube APIのリフレッシュトークンを生成します。この情報が含まれているgenerate_token.py-oauthというファイルも作成されます。

+0

しかし、次に入力する場所は、新しいaccess_tokenを取得するためのトークンをリフレッシュすることですか? – userqwerty1

関連する問題