我正在尝试在基于网络的信息中心上实施一个按钮,该按钮允许用户使用OAuth和GData API将当前数据导出到Google电子表格。目前,我可以让用户访问登录/授权访问页面,但如果我添加了将请求令牌转换为访问令牌的行,我会收到:
“RequestError:无法升级OAuth请求令牌以访问令牌:400,parameter_absent oauth_parameters_absent:组oauth_token“
我在此页面上遵循了OAuth 2的说明:
https://developers.google.com/gdata/docs/auth/oauth
并且已经阅读了Google API的两个PyDocs,但没有找到关于此问题的详细信息:
http://gdata-python-client.googlecode.com/hg/pydocs/gdata.docs.client.html#DocsClient
(不允许我发布这个超链接,但其他Pydoc是相同的URL,但在pydocs /之后用gdata.gauth.html#ClientLoginToken替换该片段)
这是有效的代码:
def createDocsClient(self, oauth_callback_url):
docsClient = gdata.docs.client.DocsClient(source='RiskOps-QualityDashboard')
request_token = docsClient.GetOAuthToken(SCOPES, oauth_callback_url, CONSUMER_KEY, consumer_secret=CONSUMER_SECRET)
domain = None
auth_url = request_token.generate_authorization_url(google_apps_domain=domain)
self.redirect(str(auth_url))
request_token = gdata.gauth.AuthorizeRequestToken(request_token, self.request.uri
使用上面的代码,我进入了一个授权访问页面,如果你点击授权访问页面,就会出现404错误,因为它不知道去哪里(如预期的那样),但页面有正确的显示的URL列出了oauth_verifier和oauth_token。 “AuthorizeRequestToken”行应该使用该URL来授权令牌,直到这一行,一切似乎都有效。
当我在上面的代码之后添加以下行时,我得到了我写的“RequestError”:
access_token = docsClient.GetAccessToken(request_token)
我尝试过使用AeSave和AeLoad将调用嵌套在一起的不同组合(因为可能需要提及说明但我不确定我的案例是否需要它)以及许多其他随机和不成功的想法没有什么能让我对我错过或做错的事情有所了解。
非常感谢和帮助,或者任何人的想法。(如果你不能说,我在实际代码方面相当缺乏经验(而不是学术代码)。非常感谢。