2011-09-20 2 views
2

J'ai le code suivant avec urllib2 qui imprime l'erreur HTTP 403: Interdit mais si j'utilise urllib au lieu d'aller chercher l'url, je ne vois aucune erreur et je obtenez une liste de mes amis. Le jeton d'accès utilisé est le même dans les deux cas.HTTP Erreur 403 Interdit avec urllib2 mais pas avec urllib avec facebook graph api

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() 

Veuillez indiquer ce qui pourrait se produire.

Répondre

5

Celui-ci est résolu maintenant. Le problème était que la requête devrait être GET pas POST et donc tous les paramètres de la requête devraient être passés avec url au lieu d'être passés en tant que données POST. Donc, dans mon cas, pour avoir des amis, le code ressemblerait à ceci:

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 

Espérons que ça aide quelqu'un.

+0

vous pouvez accepter vos propres réponses. Cliquez sur la flèche verte pour fermer la question en réponse –