2013-05-07 4 views
0

Similaire à Getting Recent Page feeds? Facebook Graph API/FQL et Getting Facebook Status updates with JSon Je voudrais faire une requête GET en utilisant l'API Graph de Facebook, et insérer ces données dans une page. À l'aide de l'API de recherche, je peux récupérer des informations sur la page, telles que les paramètres régionaux, la description et le site Web, mais aucune mise à jour d'état/post-mise à jour n'est incluse dans le fichier JSON résultant.Comment obtenir des mises à jour de statut récentes sur la page Facebook à l'aide de l'API Facebook Graph Search?

Comment puis-je récupérer les dernières mises à jour/publications d'état d'une page donnée en utilisant l'API graphique publique de Facebook?

+1

Pourquoi utiliseriez-vous l'API de recherche pour récupérer les mises à jour récentes sur une page ** donnée/particulière **. Pourquoi ne pas interroger directement depuis la page? –

Répondre

3

Il se trouve qu'il est possible de le faire, mais vous devez générer un jeton d'accès (pour la page). Pour ce faire, vous devez avoir des droits d'administrateur sur la page en question. Donc pour moi, j'ai dû demander à ce que la page me fasse un admin (les pointer vers la liste déroulante "Manage Admin Roles" sur la page).

Ensuite, vous devrez générer un jeton d'accès. Aller ici Facebook API Browser, et cliquez sur le bouton "GET Access Token" le droit. Sélectionnez le manage_pages rôle seulement.

L'URL finale devrait ressembler à ceci: https://graph.facebook.com/{page_id}/statuses?access_token=BAACEdE...

Voici la fonction javascript je tester mon URL (vous pouvez également naviguer juste là sur votre navigateur):

function populateFacebookUpdates() { 
     var pageID = "mycompanypage", 
      accessToken = "BAACEdE..."; 
     var postsURL = "https://graph.facebook.com/" + pageID + "/statuses?access_token=" + accessToken; 

     $.ajax({ 
      url: postsURL, 
      method: 'GET', 
      dataType: "jsonp", 
      success: function (data) 
      { 
       console.log("Successfully retrieved Facebook data"); 
       console.dir(data); 
      }, 
      error: function(status) { 
       console.log("Facebook data could not be retrieved. Failed with a status of " + status); 
      } 
     }); 
    } 

Les données retourné dans JSON était ce que je voulais. En outre, notez que la récupération fonctionnerait sur n'importe quel navigateur/machine/IP (il expire, cependant). Je voudrais juste mettre en garde contre mettre l'URL entière dans un fichier javascript côté client pour des raisons évidentes de sécurité ...

+0

Il se trouve que '' statuses'' est juste bien pour mes fins. Sans utiliser le SDK PHP, j'ai pu accéder aux messages les plus récents de ma page (y compris les liens partagés, les mises à jour de statut, etc.). Pour ce faire, j'ai simplement fait un '' GET'' sur l'URL suivante: '' https://graph.facebook.com/ [pageID]/feed? Access_token = [appIDhere] | [appSecretHere] ''. Notez le délimiteur '' | '' pour séparer les deux informations d'identification. J'espère que cela aide quelqu'un. – user1429980

1

L'état est une connexion et non un champ selon le documentation. Pour autant que je sache, seules les informations sur le terrain peuvent être récupérées via l'API de recherche. Si vous voulez des statuts, vous devrez obtenir l'identifiant de la page à partir de votre recherche, puis interroger les statuts de ces pages en utilisant l'appel ci-dessous.

https://graph.facebook.com/{pageID}/statuses 
+0

Ça ne marchera pas pour moi. Encore faut-il l'authentification: '' '{ "erreur": { "message": "Un jeton d'accès est nécessaire pour demander cette ressource.", "type": "OAuthException", "code": 104 } } '' 'Aurais-je besoin d'utiliser ensuite oAuth, pour autoriser le serveur à récupérer les données avant de faire le GET? – user1429980

+0

Essayez https://graph.facebook.com/{pageID}/statuses?access_token={YOUR_ACCESS_TOKEN}. Vous pouvez générer rapidement un jeton d'accès à l'aide de l'outil d'exploration de graphique http://developers.facebook.com/tools/explorer/?method=GET&path=554718794%3Ffields%3Did%2Cname –

+0

Oui, mais le jeton d'accès est temporaire. Comment générer un jeton d'accès sans application ou identifiant d'application? À la lecture de la documentation de PHP SDK, il semble que j'ai besoin d'une application: https://developers.facebook.com/docs/reference/php/ - aurais-je besoin que le serveur se connecte comme moi pour générer un accès jeton qui peut être utilisé à plusieurs reprises pour chaque session? – user1429980

Questions connexes