0

J'ai un botsbot bare bones dans la configuration de messenger et je voudrais développer sa fonctionnalité potentielle. La première chose que je veux être en mesure de faire est d'accéder aux informations de l'utilisateur, principalement le prénom des utilisateurs. Je sais que c'est possible, mais comme je suis nouveau à NodeJS je ne suis pas sûr de savoir comment y parvenir. Je n'ai pas été en mesure de trouver de nombreux tutoriels sur les chatbots après la phase d'intro. Toute aide est grandement appréciée!Facebook Messenger Bot - Comment utiliser NodeJS pour obtenir des informations utilisateur?

Voici un lien vers une version abrégée de mon chatbot

Ceci est le bit principal de code que je pense que les besoins raffinage (voir ci-dessous dans le contexte du reste du bot)

function getName(event){ 
     request({ 
     url: "https://graph.facebook.com/v2.6/" + sender, 
     qs: { 
      access_token : token, 
      fields: "first_name" 
     }, 
     method: "GET", 

    }, function(error, response, body) { 
     if(error){ 
      console.log("error getting username") 
     } else{ 
      var bodyObj = JSON.parse(body) 
      name = bodyObj.first_name 
      sendText(sender, "Hi, ") 
      sendText(sender, name) 
      sendText(sender, " whatsup?") 
     } 
    }) 
} 

Chatbot Code

+0

Bienvenue sur SO! Quelle est votre contribution, quelle est votre sortie attendue? Qu'est-ce qui ne fonctionne pas bien? –

+0

Avez-vous jeté un coup d'oeil à https://developers.facebook.com/docs/graph-api/reference/user (semble que vous avez bodyObj.first_name) ... –

+0

Merci! Et oui j'ai regardé beaucoup de leur documentation. Je ne sais pas vraiment à quoi ça devrait ressembler (la requête GET et comment sauvegarder son nom en tant que variable, etc.). La plupart de ce que j'ai provient de tutoriels. Je ne reçois aucune réponse du bot en utilisant le code ci-dessus. En fait, bizarrement, le bot répond plus d'une fois à chaque demande, mais je ne sais pas comment cela pourrait être. – Jowens

Répondre

0

Vérifiez que votre jeton d'accès est correct.

Je suggère aussi de consulter la ce que le message d'erreur est

console.log("error getting username", error); 
0

expéditeur n'est pas défini dans votre fonction.

Il est transféré dans vos autres fonctions, ou supprimé dans la portée de votre gestionnaire de demandes de publication.

Assurez-vous que l'expéditeur est défini et que votre code doit fonctionner correctement.

Ajouter la ligne ci-dessous pour votre fonction getName:

var sender = event.sender.id

-1

Votre nom variable n'est pas défini, devrait ajouter laisser name = ... et il fonctionne très bien