我正在尝试让我的 Django 应用程序(不使用 Google 应用程序引擎)使用 Google 联系人数据 API 从 Google 联系人中检索数据。浏览身份验证文档以及Data API Python 客户端文档
获取一次性令牌的第一步(AuthSubRequest)工作正常。下一步(AuthSubSessionToken),将一次性令牌升级为会话令牌。python API 调用 UpgradeToSessionToken() 根本不适合我,它给了我 NonAuthSubToken 异常:
gd_client = gdata.contacts.service.ContactsService()
gd_client.auth_token = authsub_token
gd_client.UpgradeToSessionToken()
作为替代方案,我想通过“手动”构建 HTTP 请求来使其工作:
url = 'https://www.google.com/accounts/AuthSubSessionToken'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'AuthSub token=' + authsub_token,
'User-Agent': 'Python/2.6.1',
'Host': 'https://www.google.com',
'Accept': 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2',
'Connection': 'keep-alive',
}
req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
这给了我一个不同的错误:
HTTP 错误 302:HTTP 服务器返回将导致无限循环的重定向错误。最后 30x 错误消息是:已临时移动
我在这里做错了什么?对于我尝试使用的任何一种方法,我将不胜感激帮助/建议/建议:Python API 调用 (UpgradeToSessionToken) 或使用 urllib2 手动构造 HTTP 请求。