我试图让我的Django应用程序(不使用谷歌应用程序引擎)使用谷歌联系人数据API从谷歌联系人检索数据.通过身份验证文档以及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请求.