Ошибка HTTP 403 Запрещено с urllib2, но не с urllib с api graph facebook - PullRequest
2 голосов
/ 21 сентября 2011

У меня есть следующий код с urllib2, который печатает HTTP-ошибку 403. Запрещено, но если я вместо этого использую urllib для получения URL-адреса, я не вижу никакой ошибки и получаю список своих друзей. Используемый токен доступа одинаков в обоих случаях.

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 голосов
/ 21 сентября 2011

Это решено сейчас.Проблема заключалась в том, что запрос должен быть GET, а не POST, и, следовательно, все параметры запроса должны передаваться с URL, а не как данные 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

Надеюсь, это кому-нибудь поможет.

...