使用gdata 2.0.16 Python库时出现“禁止不安全的HTTP请求。请使用HTTPS。”
我正在尝试用以下代码来获取一个用户,这段代码来自于gdata provisioning api 文档。我是在一个运行着django 1.3
的应用中尝试这个,使用的是gdata-2.0.16
和python2.7
:
from gdata.apps import client
from myapp import settings
client = client.AppsClient(domain=settings.GOOGLE_ADMIN_DOMAIN)
client.ClientLogin(email=settings.GOOGLE_ADMIN_EMAIL, password=settings.GOOGLE_ADMIN_PASSWORD, source='apps')
user_account = client.RetrieveUser('user_name')
为了保护隐私,我把实际的用户名改成了'user_name'
,但代码的大致意思就是这样。
当解释器执行到上面代码的最后一行时,我遇到了以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/gdata/apps/client.py", line 182, in RetrieveNickname
return self.GetEntry(uri, desired_class=gdata.apps.data.NicknameEntry)
File "/usr/local/lib/python2.7/dist-packages/gdata/client.py", line 652, in get_entry
desired_class=desired_class, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/gdata/client.py", line 319, in request
RequestError)
RequestError: Server responded with: 403, <HTML>
<HEAD>
<TITLE>Insecure HTTP requests not permitted. Use HTTPS.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Insecure HTTP requests not permitted. Use HTTPS.</H1>
<H2>Error 403</H2>
</BODY>
</HTML>
我在文档中找不到关于使用HTTPS而不是HTTP的相关内容。我是不是漏掉了什么?
3 个回答
0
在客户端认证后加上这一行会有帮助:
client.ssl=True。
0
试试在这个链接中找到的补丁,链接是 问题的评论3,这个问题的标题是 市场中的AppsService - SSL问题
8
在创建客户端对象之后,执行 client.ssl = True
。这样做会让 gdata API 使用安全的连接。