web-dev-qa-db-fra.com

Comment obtenir des publications sur les murs publics avec l'API Facebook

J'essaie d'obtenir des messages sur le mur d'un profil Facebook. Je n'ai aucun problème avec les pages de fans et mon jeton d'utilisateur est valide (au moins pour les pages de fans).

Exemple avec cet article: https://www.facebook.com/aurelia.filion/posts/10151342315613445 Comme vous pouvez le voir, l'article est public.

J'essaie donc: graph.facebook.com/529628444_10151342315613445?access_token=MY_TOKEN graph.facebook.com/10151342315613445?access_token=MY_TOKEN

il renvoie: "error": {"message": "Unsupported get request.", "type": "GraphMethodException", "code": 100

Dans mon explorateur de graphiques Api, je ne vois pas non plus les messages de cet utilisateur. graph.facebook.com/529628444?fields=posts (529628444 est l'identifiant de aurelia.filion)

Est-il donc possible d'obtenir les poteaux muraux? C'est public, ça devrait être un moyen de les obtenir

merci


ok je vais expliquer d'une manière différente, mon objectif est d'obtenir ce genre de messages avec le graphique (je peux obtenir tous les autres messages sauf les thèses)

facebook.com/aurelia.filion/posts/10151342315613445

facebook.com/aurelia.filion/posts/10151336175793445

mais j'obtiens l'erreur "Demande de support non prise en charge".

j'ai essayé le jeton utilisateur et le jeton d'application ce lien ne fonctionne pas: graph.facebook.com/529628444_10151342315613445?access_token=MY_TOKEN

lorsque j'essaie avec le flux, je ne vois pas les messages que je veux là-dedans.

Et si je demande les posts graph.facebook.com/529628444/posts?limit=100&access_token=TOKEN je peux tout voir (lien, photo, etc.) sauf les messages flippants !!

Comment puis-je obtenir ces messages, est-ce un problème symbolique, il semble que ce soit un statut, est-il différent d'obtenir, je veux dire avons-nous besoin d'autorisations? graph.facebook.com/529628444?fields=statuses&access_token=TOKEN il ne renvoie aucun résultat! c'est vide!

ÉDITER

12
user2208252

ÉDITER

Cette réponse a été réécrite lorsque la version de l'API Graph était dans sa première version. À l'époque, vous pouviez obtenir le flux utilisateur en utilisant l'ID utilisateur.En ce moment, l'ID utilisateur n'est plus partagé entre les applications. Facebook a également créé une nouvelle API qui n'est disponible que pour certains de ses partenaires.

Il est donc impossible pour l'instant d'obtenir le flux utilisateur public, à moins que l'utilisateur n'ait utilisé votre application. Cependant, vous pouvez toujours obtenir le flux Pages.

Ancienne version

Cette réponse était pour le graphique api v1

Vous devez donc utiliser ce https://graph.facebook.com/529628444?fields=feed&access_token=YOUR_TOKEN

Et si tout ce que vous voulez c'est interroger des données publiques, vous pouvez créer un jeton APP en procédant comme suit:

https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&
grant_type=client_credentials 

Et utilisez ce jeton au lieu d'utiliser votre jeton d'utilisateur.

11
Fabio Antunes

Je ne sais pas si ce message est trop ancien, mais je viens de le trouver alors que je cherchais une solution à mon problème.

Quoi qu'il en soit, je vais simplement montrer comment j'ai réussi à obtenir des flux d'un utilisateur public:

        var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";
        var fburl = "https://graph.facebook.com/201317759900688?fields=feed&";

        $.get(fbul, function(auth_token){
            $.ajax({
                dataType: "jsonp",
                url: fburl+auth_token,
                success: function(res){
                    console.log(res);

                }
            });
        });

Et voici une petite explication: vous devez aller sur la console de développement Facebook ( https://developers.facebook.com ) et enregistrer une nouvelle application Web. Allez simplement sur "Mes applications" dans le Nav supérieur et allez sur "Ajouter une nouvelle application". Une fois cela fait, vous pouvez accéder à votre ID d'application et à votre secret d'application.

Le premier lien "var fbul" est d'obtenir votre access_token dont vous avez besoin pour accéder aux flux.

var fbul = "https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=[AppID]&client_secret=[AppSecret]";

Remplacez simplement [AppID] et [AppSecret] par vos propres clés.

Le deuxième lien est d'accéder au fil (nous n'ajoutons pas l'acces_token ici parce que nous le faisons dans notre demande ajax)

var fburl = "https://graph.facebook.com/201317759900688?fields=feed&";

Le numéro ici (2013177599 ....) est l'ID de canal d'un site public. Pour obtenir ce numéro, allez simplement sur http://findmyfacebookid.com/ et entrez l'URL facebook de l'utilisateur public.

C'est à peu près tout ce dont vous avez besoin.

Maintenant écrivez votre demande ajax comme suit:

$.get(fbul, function(auth_token){
            $.ajax({
                dataType: "jsonp",
                url: fburl+auth_token,
                success: function(res){
                    console.log(res);

                }
            });
        });

Vous verrez maintenant les résultats dans votre console.

Utilisez la fonction de réussite pour gérer les résultats comme vous le souhaitez.

5
Daniel