Google云端硬盘服务帐户未经授权的客户异常

时间:2015-06-16 01:11:39

标签: python google-drive-api google-oauth service-accounts

我正在尝试使用python的服务帐户身份验证设置Google云端硬盘应用程序。我已经尝试了所有可以找到的指令,但是我无法让它来授权客户端。这就是我所拥有的:

CLIENT_EMAIL='<stuff>@developer.gserviceaccount.com'
f = open('<the .p12 file I downloaded from the OAuth section of the credentials page on the developers console>', 'rb')
key = f.read()
credentials = SignedJwtAssertionCredentials(CLIENT_EMAIL, key, scope='https://www.googleapis.com/auth/drive', sub="<the email address of the account owner listed in the permissions page>")
self.http = credentials.authorize(httplib2.Http())

gauth = GoogleAuth()
gauth.credentials = credentials

self.drive = GoogleDrive(gauth)

以及稍后的代码,这一行

file_list = self.drive.ListFile({'q': "title = '" + id + '.zip' + "'", 'maxResults': 100}).GetList()

我的代码会抛出unauthorized client exception。我也尝试从我直接下载到代码中的JSon粘贴私钥,但这也不起作用。将密钥解码或编码为base64不起作用(给我一些格式错误)。有人知道会出现什么问题吗?

我也在不是我下载p12文件的服务器上运行它,但我认为这不重要。我只是提到它,以防万一。

1 个答案:

答案 0 :(得分:0)

使用google drive sdk时我也遇到了很多问题。我写了一个小包装,以便轻松使用Google Drive Api(至少对我而言)。您可能会发现它很有帮助 - google drive client wrapper gist