使用Facebook Graph API时,urllib2出现HTTP 403错误,但urllib没有
我有一段代码,用的是urllib2,结果出现了HTTP错误403:禁止访问。但是如果我换成urllib来获取网址,就没有错误,反而能顺利得到我的朋友列表。使用的访问令牌在两种情况下都是一样的。
url = 'https://graph.facebook.com/me/friends/'
params = {'access_token': 'a valid access-token...', 'fields': 'id,name,birthday'}
req = urllib2.Request(url, data=urllib.urlencode(params))
try:
con = urllib2.urlopen( req )
print con.read()
except Exception as excp:
print excp.read()
请问可能出什么问题呢?
1 个回答
5
这个问题现在解决了。问题在于请求应该用GET方式,而不是POST方式,因此所有的查询参数应该通过网址传递,而不是作为POST数据传递。所以在我的例子中,获取朋友的代码大概是这样的:
url = 'https://graph.facebook.com/me/friends/'
params = {'access_token': 'a valid access-token...', 'fields': 'id,name,birthday'}
try:
con = urllib2.urlopen( url + '?' + urllib.urlencode(params))
print con.read()
except Exception as excp:
print excp
希望这能帮到某个人。