32 votes

Identifier l'utilisateur de Facebook Messenger avec UserID à partir d'une connexion Facebook

Je suis en train d'essayer le nouveau Facebook Messenger Plate-forme et ont frappé un peu d'un problème.

Lorsqu'un utilisateur discute avec mon Bot, je veux utiliser l' sender.id pour la recherche de l'utilisateur dans ma DB et vérifier qu'ils soient client ou pas et d'avoir une offre plus adaptée UX.

L'utilisateur du signe jusqu'à mon service à l'aide de Facebook Login, mais malheureusement, il semble que mon Application Facebook ID & mon Bot Facebook ID sont différents en raison de l'IDs être limité à l'App-étendues.

Est-il possible d'associer les 2 Id pour me permettre de trouver un utilisateur dans ma DB?

Mise à JOUR (4/20/2016): Nous avons eu autour de ce en demandant aux utilisateurs sur le premier contact via messenger à cliquer sur un lien pour se connecter à son compte de façon à ce que nous pourrions associer leurs messenger_id avec leur compte dans notre base de données.

Serait génial si facebook au lieu de cela inclus PAGE_SCOPED Id dans l' ids_for_business point de terminaison.

Mise à JOUR: (6/1/2016): Facebook de la dernière mise à jour comprend un nouveau "Compte de Liaison" fonctionnalité qui semble résoudre ce problème. Voir https://developers.facebook.com/docs/messenger-platform/account-linking

8voto

Richard O'Brien Points 244

La dernière mise à jour de Facebook inclut une nouvelle fonctionnalité de « lien de compte » qui semble résoudre ce problème. Voir https://developers.facebook.com/docs/messenger-platform/account-linking

3voto

pschang Points 746

Malheureusement, il n'y a aucun moyen de le faire actuellement. Leur demander de se connecter à de nouveaux threads est la meilleure façon de lier les comptes.

3voto

Gijo Varghese Points 2368

Oui. Vous pouvez obtenir des détails comme prénom, nom de famille, photo de profil URL, lieu, fuseau horaire, sexe d'un api. Seulement vous devez passer est leur id destinataire /sender id et acccess_token de votre bot messager.

2voto

Zahid Rahman Points 150

Je l'ai résolu de manière différente, mais il fonctionne parfaitement par l'API graphique,j'ai lu la boîte aux lettres de ma page, de sorte que lorsque l'une quelconque peuvent interagir par le messager de bot que j'ai lu les pages de la boîte de réception et parcourir,

Étape 1:

Faire une demande HTTP get par l'API graphique , vous voulez un PAGE_UNIQUE_ID de l'API Graphique ,

REQUÊTE GET

https://graph.facebook.com/v2.6/<PAGE_UNIQUE_ID>?fields=conversations.limit(10){participants,updated_time,id}&access_token=<PAGE_ACCESS_TOKEN>

PAGE_UNIQUE_ID Conseils:

Go ===> https://developers.facebook.com/tools/explorer/ ==> Appuyez sur "Obtenir un Jeton" ===> Sélectionner la page ===>Enfin Soumettre , Vous montrer une pièce d'identité à la sortie PAGE_UNIQUE_ID ici.

Vérifier sur navigateur pour resoponse.

Étape 2:

Après avoir fait au-dessus de la requête http ,vous obtenez un objet JSON qui va afficher les 10 derniers conversation de pages à l'endroit désiré facebook id inclus.

Étape 3:

Ne itération par le nom complet de l'utilisateur, ou vous pouvez utiliser lodash ou un trait de soulignement à votre choix,

getUserID(response,'Zahid Rahman')


function getUserID(response, fullname) {
  if (response && response.conversations && response.conversations.data) { //Check response is correct
    var conversations = response.conversations.data;                       //Get all conversations
    for (var j = 0; j < conversations.length; j++) {
      var conversationsParticipants = conversations[j].participants.data; 
      for (var k = 0; k < conversationsParticipants.length; k++) {         //Get all particiapnts of a single conversation.

        var conversationsParticipantsEach = conversationsParticipants[k];
        if (conversationsParticipantsEach.name === fullname) {             //Check fullname match or not
          console.log("Desired Facebook User ID : " + conversationsParticipants[k].id);
          return conversationsParticipants[k].id;     
        } 
      }
    }
  }
}

Espérons qu'il saura vous aider.

1voto

user3268305 Points 369

C'est probablement ce que vous voulez: https://developers.facebook.com/docs/apps/for-business

Il vous permet d'obtenir tous les identifiants utilisateur app-scoped sur une base par entreprise.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X