我有以下带有 urllib2 的代码,它会打印 HTTP Error 403: Forbidden,但是如果我使用 urllib 来获取 url,我不会看到任何错误,而且会得到我的 friend 列表。这两种情况使用的访问 token 是相同的。
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()
请提出可能存在问题的建议。
最佳答案
这个问题现在已经解决了。问题在于请求应该是 GET 而不是 POST,因此所有查询参数都应该通过 url 传递,而不是作为 POST 数据传递。因此,就我而言,要获得 friend ,代码将如下所示:
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
希望它对某人有帮助。
关于python - HTTP 错误 403 Forbidden with urllib2 but not with urllib with facebook graph api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491347/