我正在尝试在基于网络的信息中心上实施一个按钮,该按钮允许用户使用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将调用嵌套在彼此之间的不同组合(因为可能需要提示说明但我不确定我的案例是否需要它)以及许多其他随机和不成功的想法,没有什么是真的让我很清楚我错过了什么或做错了什么 .

真的很感激,帮助或任何人的想法 . (如果你不能说,我对现实世界的代码(而不是学术代码)相当缺乏经验 . 非常感谢 .