obtenez les conversations de la page FB via l'api open graph
J'ai enregistré un Facebook-App et créé un jeton avec toutes les autorisations dont j'ai besoin. Parmi eux
manage_pages
read_mailbox
read_page_mailbox
Maintenant je veux utiliser le Facebook open graph API pour lire des données à partir de mon propre FB-page. Je veux lire les messages privés que la page a reçu et que j'ai envoyé à certains des fans sur mes pages nom.
Je sais que je peux obtenir toutes les informations en envoyant un http-requête comme ceci:
https://graph.facebook.com/{page-id}/{object}?access_token={token}
où {something}
sont des espaces réservés pour les valeurs réelles. Pour donner un exemple, je peux lire les messages qui est apparu sur ma page en envoyant cette demande:
https://graph.facebook.com/141928949155955/posts?access_token={my secret token}
Comme je l'ai dit, cela fonctionne très bien, depuis plus de deux ans. (J'ai juste besoin de mettre à jour le jeton de temps à autre)
Mais maintenant je veux lire les conversations privées entre la page et c'est les fans. Je veux extraire toutes les conversations et de les insérer dans une feuille de calcul. Je veux faire une fois, et peut-être dans 1 ou 2 ans encore. J'ai pu extraire manuellement à partir de la fenêtre du navigateur par copie et coller pour chaque conversation, mais depuis il ya tellement de nombreuses conversations je pense qu'il en coûte moins de temps pour permettre à un programme de le faire pour moi.
Si je comprends Facebooks Documentation correcte, puis le mot-clé que je dois utiliser doit être conversations
. Mais j'obtiens ceci:
https://graph.facebook.com/141928949155955/conversations?access_token={secret token}
{
"error": {
"message": "(#210) Subject must be a page.",
"type": "OAuthException",
"code": 210
}
}
Mais 141928949155955 est une page. Je ne sais pas ce que je fais mal. Quelle est la demande que je dois envoyer pour recevoir une des pages de conversations privées?
MODIFIER (16 juin):
Je peux lire mes conversations personnelles avec cette demande:
https://graph.facebook.com/me/conversations?access_token={secret token}
Mais je ne veux pas lire les conversations que j'ai fait en tant que personne. J'ai besoin de ceux d'une de mes pages.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la solution pour mon problème. (Merci kush, votre réponse m'a beaucoup aidé, mais je veux ajouter plus d'information)
Mon problème est que j'ai mal compris le message d'erreur "Objet doit être une page". Je pensais que le "Sujet" se réfère à une partie de la chaîne de requête. Mais il se réfère à la jeton! Un message du genre "Jeton doit être une Page d'un Jeton d'Accès" m'aurait sauvé SEMAINES de inutile la recherche sur une période de plus de deux ans! Comment pouvez-vous utiliser un terme comme "Sujet" lorsque vous nulle part de définir ce "Sujet" est?
Donc ce n'était pas la chaîne de requête que c'était faux. C'était le type de jeton!
Maintenant, voici la procédure complète pour résoudre le problème (obtenir une Page Jeton d'Accès)
SOLUTION
Étape 1
Obtenir un Jeton d'Accès Utilisateur de votre Application que vous pouvez utiliser plus tard pour obtenir une Page Jeton d'Accès
Dans le champ "Jeton d'Accès:" vous ne trouvez maintenant un Jeton qui est un Jeton d'Accès Utilisateur. Ce n'est pas une Page Jeton d'Accès! Ce Jeton a toutes les autorisations dont vous avez besoin pour gérer votre page (y compris l'autorisation "manage_pages"), mais vous ne pouvez pas l'utiliser pour gérer les pages, car il est le mauvais type de jeton. Vous avez besoin de ce jeton pour une seule raison: Pour créer un nouveau jeton.
Étape 2
Utiliser le Jeton d'Accès Utilisateur que vous avez simplement à créer une Page Jeton d'Accès
Vous obtenez une liste de vos pages, chacune avec un "access_token" (qui est maintenant une Page Jeton d'Accès). Chacun de ces jetons n'héritent des autorisations du Jeton d'Accès Utilisateur que vous avez utilisé lorsque vous avez appelé "moi/comptes".
Cette Page Jeton d'Accès expire au bout d'une heure.
supplément
Si vous voulez une Page Jeton d'Accès qui n'expire jamais, faire de cette façon:
https://graph.facebook.com/v2.0/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token}
(n'appuyez pas sur entrée!) Si cela chaînes disparaît lors du passage d'un onglet du navigateur à l'autre, utilisez un éditeur de texte pour assembler la chaîne et le copier plus tard dans le champ d'adresse.{app-id}
et{app-secret}
par les valeurs de l'onglet du navigateur qui affiche toujours vos Applications de données.{short-lived-token}
avec le Jeton d'Accès Utilisateur que vous trouvez dans le champ "Jeton d'Accès:" à partir de l'API Graphique de l'Explorateur.La fenêtre de votre navigateur affiche désormais une Chaîne de caractères avec les champs "access_token" et "expire", séparés par une esperluette ("&"), qui ne fait pas partie de la marque. Ce Jeton est une longue durée de vie Jeton d'Accès Utilisateur qui prendra fin dans deux mois.
Le résultat est une Page d'Accès Tokes avec toutes les autorisations que vous avez sélectionné à l'Étape 1.4 et qui ne le sera jamais expirer.
Bonne chance!
À l'aide de la page jeton d'accès devrait aider puisque vous êtes la lecture de la page ..
Api graphique nœud: me/comptes
m'/comptabilité, vous donnera les pages que vous êtes en admin et l'utilisation jeton d'accès venant de l'info sur la page du dictionnaire.
vous devriez obtenir les données suivantes de moi/comptes
Utilisation de la page accès à jeton d'accès à des données à partir de la page que la page d'admin et tu doit recevoir des données 🙂 laissez-moi savoir si cela fonctionne 🙂
Succès d'une autorisation de retour d'un jeton d'accès à votre application, que vous pouvez ensuite utiliser pour effectuer des actions à l'Facebook API. Le message d'erreur affiché signifie que vous ne disposez pas d'un jeton d'accès valide qui signifie que vous n'avez probablement pas authentifier l'application correctement. Je mettrais quelques traces sur le onFacebookError et onError méthodes pour voir quel est le problème.
Demander l'Autorisation Au moment de la Connexion de Sorte que Son Erreur d'Authentification
Permission Liste
https://developers.facebook.com/docs/facebook-login/access-tokens/
Définir Des Autorisations De Référence
https://developers.facebook.com/docs/android/login-with-facebook#permissions
manage_pages
est accordée, et il a le droit de lire les conversations depuisread_mailbox
est accordée.