访问Google Drive API时出现“凭据无效”

时间:2013-01-17 21:53:22

标签: google-drive-api google-api-python-client

我正在开发一个AppEngine应用程序,该应用程序使用Google Drive API列出我的Google云端硬盘中的文件。当我的一个用户尝试运行我的应用时,我收到500错误:

HttpError:https://www.googleapis.com/drive/v2/files?q =%27 [ID sanitized]%27 + in + parents& alt = json& maxResults = 5返回“Invalid Credentials”>

代码从特定的google驱动器文件夹中提取文件。该文件夹和文件与用户共享,并且该应用有权使用Google Drive API。

在某些时候,我认为我应该从头开始,所以我撤销了该用户帐户的授权。似乎没有什么区别,现在添加侮辱伤害似乎我的应用程序不再要求特定用户授权。

此时有人有任何建议吗?我的代码使用python的Google API客户端和装饰器(使用oauth_required)来处理授权:

CLIENT_SECRETS = os.path.join(os.path.dirname(__file__), 'client_secrets.json')

MISSING_CLIENT_SECRETS_MESSAGE = """
<h1>Warning: Please configure OAuth 2.0</h1>
<p>
To make this sample run you will need to populate the client_secrets.json file
found at:
</p>
<p>
<code>%s</code>.
</p>
<p>with information found on the <a
href="https://code.google.com/apis/console">APIs Console</a>.
</p>
""" % CLIENT_SECRETS

http = httplib2.Http(memcache)

service = build("plus", "v1", http=http)
files_service = build("drive", "v2", http=http)

decorator = oauth2decorator_from_clientsecrets(
    CLIENT_SECRETS,
    scope='https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/drive.readonly',
    message=MISSING_CLIENT_SECRETS_MESSAGE)

[...]

class MainPage(webapp2.RequestHandler):

    @decorator.oauth_required
    def get(self):

[...]

        try:
            kb_param = {}
            kb_param["maxResults"] = 5
            kb_param["q"] = "'[sanitized]' in parents"
            kb_files = files_service.files().list(**kb_param).execute(http=http)

            template_values = {
                'kb_files': kb_files["items"]
            }

非常感谢任何见解:)

谢谢! 瑞克。

1 个答案:

答案 0 :(得分:0)

令牌可能已被撤销,或凭据可能实际上是错误的。