Google云端硬盘api和服务帐户

时间:2013-04-15 08:45:15

标签: python google-drive-api

我为我的帐户name@steelkiwi.com(Google应用)创建了服务帐户,我的应用程序运行正常。然后我为我的个人帐户name@gmail.com创建了服务帐户,为我的应用程序使用这个新凭据,现在当我尝试插入文件时,我得到错误500,下一个文本:

  请求https://www.googleapis.com/upload/drive/v2/files?quotaUser=30&uploadType=resumable&convert=true&ocr=false&alt=json时,

HttpError 500返回“内部错误”

唯一改变的是凭证SERVICE_ACCOUNT_EMAIL和SERVICE_ACCOUNT_PKCS12_FILE_PATH。我曾尝试为name@steelkiwi.com创建另一个服务帐户,但它没有帮助,因此我的应用程序仅适用于第一个服务帐户。 语言是python。

2 个答案:

答案 0 :(得分:0)

如果您使用应用领域管理员创建服务帐户,则应该可以通过更改下面的prn属性来模拟所有用户。如果您未设置超出域的prn用户,则应该会看到访问错误。

f = open('path-to-privatekey.p12')
key = f.read()
f.close()

credentials = SignedJwtAssertionCredentials('xxx@developer.gserviceaccount.com', key, scope='https://www.googleapis.com/auth/drive', prn='user@steelkiwi.com')

http = httplib2.Http()
credentials.authorize(http)

client = build('drive', 'v2', http=http)

答案 1 :(得分:0)

好的,我不确定发生了什么事可能在事故发生后修复了一些事情http://www.google.com/appsstatus#hl=en&v=issue&ts=1366405199000&iid=369723584758ad9cdfd010ac44c8272e 但现在一切正常。起初我使用与服务帐户https://gist.github.com/mobedigg/5420958一起使用的示例创建了一个简单的小应用程序我已经使用了我的凭据用于此应用程序并且它可以正常工作,所以我将这些凭据放到我的主代码中,它也起作用了。除了凭证之外,主代码中没有任何更改。此外,我在这个小应用程序上尝试了其他凭据,他们使用它并使用主代码。这很奇怪。