如何将 Oauth2 服务帐户与 Google Drive 和 App Engine SDK 结合使用

2024-02-23

使用 App Engine 和服务帐户访问 Google Drive 效果很好。为了使其正常工作,我还必须使用服务帐户名称共享我的云端硬盘文件:[电子邮件受保护] /cdn-cgi/l/email-protection.

但是当我使用 GAE SDK 时,我收到 401。我认为原因是我的共享 SDK 的 service_account 名称。 SDK 的服务帐户名称为:test@localhost 根据:

app_identity.get_service_account_name()  # returns test@localhost

SDK控制台中的错误消息:

发生错误:https://www.googleapis.com/drive/v2/files/0B9-mE.........................nM/children?alt=json&key =AI........................N0 返回“无效凭证”>

这是访问 Google Drive 的代码:

def get(self):

    SCOPE = 'https://www.googleapis.com/auth/drive'
    credentials = AppAssertionCredentials(scope=SCOPE)
    logging.info(app_identity.get_service_account_name())
    http = credentials.authorize(httplib2.Http())
    if os.environ['SERVER_SOFTWARE'].startswith('Development') : 
        service = build('drive', 'v2', http=http, developerKey='...API key...')
    else :
        service = build('drive', 'v2', http=http, developerKey='...APY key...')
    # drive requests        

UPDATE :

我个人的意见:这只能与 GAE 一起使用,而不能与 SDK 一起使用,因为我无法使用 SDK service_account 名称进行驱动器共享。或者是否可以指定另一个服务帐户名称。


请检查文档应用程序拥有的服务帐户 https://developers.google.com/drive/service-accounts,并且还有一个您可以观看的视频 http://www.youtube.com/watch?v=iK14bfd6qhs too.

该文档包含 Python 示例代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Oauth2 服务帐户与 Google Drive 和 App Engine SDK 结合使用 的相关文章

随机推荐