未定义身份验证会话

时间:2018-08-30 08:26:53

标签: oauth-2.0 google-photos-api

我尝试根据以下链接的步骤使用Google Photos API上传我的图片。

https://developers.google.com/photos/library/guides/upload-media

遵循Using OAuth 2.0 for Web Server Applications之后,我刚得到Oauth2.0_token响应(JSON格式,带有access_token,refresh_token ...)。但是,将带有“ Bearer”的令牌字符串放入请求标头后,响应为错误401,错误消息为“未定义代码16身份验证会话”。

我找不到任何相关信息,谢谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您可能具有不正确的权限。确保您请求的令牌具有适当的范围。对于只写访问,您需要'https://www.googleapis.com/auth/photoslibrary.appendonly'

src:https://developers.google.com/photos/library/guides/authentication-authorization#what-scopes

答案 1 :(得分:0)

可能发生这种情况的一个原因是,您最初授权用户进行只读访问。如果您以.readonly范围查看授权流程,则承载令牌将反映该授权(并且该令牌保留在您的凭据文件中)。如果您更改范围但未获得新的身份验证令牌,则在尝试上传时会收到此错误。只需使用定义的新范围来重做授权流程:

SCOPES = 'https://www.googleapis.com/auth/photoslibrary'
store = file.Storage('path_to_store')
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('google_credentials.json', SCOPES)
    creds = tools.run_flow(flow, store)

,您的商店将填充一个可用于上传的新令牌。

答案 2 :(得分:0)

您说您“仅获得Oauth2.0_token响应(带有access_token,refresh_token ...的JSON格式)”,然后“将带有“ Bearer”的令牌字符串放入请求标头”。

不幸的是,在很多地方,关于此的文档并不十分清楚。您应该在“ Bearer”之后提供的只是“ access_token”字段,而不是其中包含所有令牌字段的整个JSON字符串。作为参考,这是一个随机字符串,可能以“ ya29”开头。而且很长-就我而言,是170个字符。

相关问题