Question

Je suis en train de mettre en œuvre Facebook en temps réel api avec mon application. Je veux tirer les flux de mon 'page facebook. J'ai obtenu app_access_token ...

app_access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'       

url = 'https://graph.facebook.com/' + FB_CLIENT_ID + '/subscriptions?access_token=' + app_access_token

url_params = {'access_token':app_access_token,'object':'page', 'fields':'feed', 'callback_url':'http://127.0.0.1:8000/fb_notifications/', 'verify_token' : 'I am taking a random string here...'}

urlResponse = call_url(url, url_params)

Chaque fois que j'appelle l'URL avec des paramètres d'URL, j'obtiens l'erreur: Erreur HTTP 400: Bad Request Mais si j'appelle l'URL sans paramètres url, je reçois {"data": []}

S'il vous plaît noter que dans les paramètres d'URL, je prends verify_token, une chaîne aléatoire et callback_url n'est pas identique au paramètre REDIRECT_URL pour l'application facebook. (Veux juste savoir est-il nécessaire de mettre la même URL ici?)

S'il vous plaît dites-moi ce que je fais mal? J'utilise python / django pour mettre en œuvre.

Était-ce utile?

La solution

Utilisez POST plutôt que GET, avec un corps vide et object, fields, callback_url et verify_token passé en tant que paramètres de requête dans l'URL.

Voir https://developers.facebook.com/docs/reference/api/ en temps réel / .

Autres conseils

J'ai compris cela ... . . . . Faire une demande POST à ??l'URL:

'https://graph.facebook.com/' + FB_CLIENT_ID + '/subscriptions?access_token=' + app_access_token + '&object=page&fields=name&callback_url=' + YOUR_CALLBACK_URL + '&verify_token=' + ANY_RANDOM_STRING + '&method=post'

Passe {} en tant que paramètres post ..... Assurez-vous que your_callback_url devrait être accessible. Il ne fonctionnera pas sur localhost (je pense que oui ... je ne suis pas en mesure essai sur localhost.)

Donc en Python le code doit être:

url = 'https://graph.facebook.com/' + FB_CLIENT_ID + '/subscriptions?access_token=' + app_access_token + '&object=page&fields=name&callback_url=' + YOUR_CALLBACK_URL + '&verify_token=' + ANY_RANDOM_STRING + '&method=post'

url_params = {}

urlResponse = urllib2.urlopen(url, urllib.urlencode(url_params), timeout=socket.getdefaulttimeout()).read()

urlResponse devrait être nulle.

Fonction attachée avec callback_url doit retourner:

def callback_function(request):
   if request.GET: #(Handle this properly!!!)
       return request.GET.get('hub.challenge') #hub_challenge for PHP Developers. :)

S'il vous plaît laissez-moi savoir en cas de doute !!!

Pour savoir comment gérer les notifications du FB: Veuillez visiter l'adresse suivante: notifications de Facebook le traitement des demandes après la souscription réussie

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top