【发布时间】:2019-06-16 17:23:53
【问题描述】:
这个功能是从谷歌获得认证服务。之后
API_SERVICE_NAME = 'youtubereporting'
API_VERSION = 'v1'
CLIENT_SECRETS_FILE = "client_secret_929791903032-hpdm8djidqd8o5nqg2gk66efau34ea6q.apps.googleusercontent.com.json"
SCOPES = ['https://www.googleapis.com/auth/yt-analytics-monetary.readonly']
def get_authenticated_service():
flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
credentials = flow.run_local_server()
return build(API_SERVICE_NAME, API_VERSION, credentials=credentials)
但我想使用 Refresh Token 自动进行身份验证,而无需打开浏览器。因此在上面的函数中添加一些代码来保存Refresh Token:
def get_authenticated_service():
flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
credentials = flow.run_local_server()
with open('refresh.token', 'w+') as f:
f.write(credentials._refresh_token)
print('Refresh Token:', credentials._refresh_token)
print('Saved Refresh Token to file: refresh.token')
return build(API_SERVICE_NAME, API_VERSION, credentials=credentials)
好的,那么有了Refresh Token之后,如何使用呢?我试图替换刷新令牌="ABCDEF456",但它不起作用
def get_authenticated_service():
return build(API_SERVICE_NAME, API_VERSION, credentials="ABCDEF456")
【问题讨论】:
-
我不明白你说的
I tried to replace the refresh token ="ABCDEF456" but it does not work是什么意思 -
什么是 API_SERVICE_NAME 和 API_VERSION?
-
@JohnHanley 我的意思是在拥有刷新令牌之后?然后我读取刷新令牌文件,然后直接粘贴值(例如:
ABCDEF456) -
我添加了 API_SERVICE_NAME 和 API_VERSION!
-
可能我直接将刷新令牌粘贴到
build函数的方式是错误的。这就是我问这个问题的原因。如何使用刷新令牌?
标签: python oauth google-api youtube-api google-oauth