Python中的GData和OAuth:无法将请求令牌转换为访问令牌

2024-03-28 10:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在基于web的仪表板上实现一个按钮,允许用户使用OAuth和gdataapi将当前数据导出到Google电子表格中。目前,我可以让用户访问登录/授权访问页面,但如果我添加将请求令牌转换为访问令牌的行,则会收到:

“RequestError:无法将OAuth请求令牌升级为访问令牌:400,缺少参数_ oauth_参数_缺席:oauth_令牌““

我遵循此页上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客户端登录)在

这是有效的代码:

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

有了上面的代码,我进入了一个grant access页面,如果您单击grant access页面,就会出现404错误,因为它不知道应该在哪里(正如预期的那样),但是页面显示了正确的URL,其中列出了oauth_验证器和oauth_令牌。“AuthorizeRequestToken”行应该使用该URL来授权令牌,所以在这行之前,一切似乎都正常。

当我在上面的代码后面添加以下行时,我得到了我写的“RequestError”:

^{pr2}$

我尝试过将调用嵌套在彼此内部的不同组合,使用AeSave和AeLoad(如说明所述,可能需要,但我不确定我的案例是否需要它)以及许多其他随机和不成功的想法,但没有什么能真正让我清楚地知道我遗漏了什么或做错了什么。

我会非常感谢和帮助的,或者任何人有任何想法。(如果你说不出来的话,我对现实世界的代码(与学术代码相反)是相当缺乏经验的。非常感谢。


Tags: 代码用户selfclienttokenauthurldocs