Accéder à l'historique d'une conversation Messenger par l'API de Facebook

a marqué ce sujet comme résolu.

Bonjour !

Je travaille en ce moment sur un petit script (en Python) permettant de faire diverses statistiques sur un groupe de conversation, en l’occurrence sur Facebook Messenger (qui poste le plus, combien de messages par jour, etc). Jusqu’à présent, je me débrouille en téléchargeant les données personnelles de l’utilisateur, et de donner directement au script le JSON de l’historique de la conversation concernée. Or, d’une part ce n’est pas très pratique, et d’autre part, pour un utilisateur un peu ancien, le fichier zip téléchargé peut vite être très gros, puisqu’il contient les historiques de dizaines de conversations.

Du coup, j’aimerais bien essayer d’utiliser directement l’API de Facebook pour récupérer, d’abord la liste des conversations (pour choisir laquelle utiliser), puis l’historique de la conversation choisie. Hors, je me heurte alors à un problème : la documentation de l’API Facebook me parait assez confuse, et je ne parviens pas à trouver comment récupérer ces informations. Lorsque je fais une requête sur l’URL /me?acess_token=XXX&fields=name,id,threads, un message d’erreur m’indique qu’il me faut la permission read_mailbox, permission qui n’est proposée nulle part, même lorsque je demande un nouveau token utilisateur (pourtant, si je fais des requêtes sur le compte du développeur lui-même, je devrais avoir accès à tout, non ?). Je précise que ce script n’a pas pour vocation d’être utilisé à grande échelle, donc s’il faut un petit bricolage pour obtenir ce token, ou s’il ne marche que pour l’utilisateur développeur, ça ne me dérange pas. Je cherche juste à éviter de télécharger l’intégralité des historiques de conversations.

Sauriez-vous comment je peux télécharger ces informations ? Quelque chose m’aurait-il échappé dans la doc ?

Merci ! :)

+0 -0

Salut !

D’après ce que j’ai pu lire ici, read_mailbox serait déprécié depuis la version 2.4 au moins de l’API. Ce qui semble être confirmé dans la documentation de Facebook à cette adresse, qui semble contenir la source de la citation dans StackOverflow, avec une précision de date : ce serait depuis le 6 octobre 2015. Le hic, c’est qu’il n’y a apparemment pas de mention de ce qui aurait remplacé la chose…

+0 -0

Un peu à l’écart de ton problème mais ça peut peut-être t’aider après. J’ai pas check mais vue que c’est eux qu’il l’ont dev ils doivent probablement l’utiliser, regarde si c’est possible de faire des requête graphql plutôt que de requeter l’api rest. Ma permettra d’avoir généralement en une seul requête le ou les info que tu veux au lieu d harcelé l api rest de requête dépendantes ;)

Merci pour vos réponses !

En fait, pour l’instant, je n’ai pas utilisé OAuth, je n’ai même pas encore testé des requêtes directement via Python. J’ai fais les premiers tests avec l’« explorateur de l’API Graph » (https://developers.facebook.com/tools/explorer/), et c’est là que j’ai obtenu l’erreur mentionnée. J’ai supposé que, passant par l’outil fourni directement par Facebook, et étant déjà connecté, je n’avais pas besoin de passer par cette procédure.

Voilà le message que j’obtiens avec l’URL mentionnée (avec la seule version d’API proposée, la v3.2).

{
  "error": {
    "message": "(#298) Reading mailbox messages requires the extended permission read_mailbox",
    "type": "OAuthException",
    "code": 298,
    "fbtrace_id": "XXX"
  }
}

Il me semble que pour utiliser OAuth, il faut que l’usage de l’API soit vérifié par Facebook ? Si c’est bien le cas, n’y a-t-il pas un moyen de contourner ça temporairement (puisque je ne compte pas spécialement diffuser le script qui utilisera l’API, c’est juste pour des tests persos).

Merci ! :)

+0 -0

Bon, après quelques tentatives de recherches, il semblerait que rien n’ait remplacé la permission read_mailbox, et que la fonctionnalité de lecture des messages d’un utilisateur ait donc disparue. Il semblerait que la seule solution qui reste soit de copier en grande partie le code des applis "web wrapper" qui accèdent aux données Facebook d’un utilisateur, mais je ne connais pas du tout le Java. :/

+0 -0

Salut.

Désolé mais ça remonte à plus d’un an, je crois avoir simulé un navigateur web pour récupérer les messages, mais je n’ai plus du tout le code sous la main. Tu peux regarder du côté de fbchat ou facebook-chat-api par exemple…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte