Facebook Messenger Bot - 如何使用NodeJS获取用户信息?
问题描述:
我有一个光秃秃的骨头聊天机构设置,并希望扩大其潜在的功能。我想要做的第一件事就是访问用户信息,主要是用户的名字。我知道这是可能的,但由于我是NodeJS的新手,我不确定如何实现这一点。在介绍阶段,我一直无法在聊天机器上找到很多教程。任何帮助是极大的赞赏!Facebook Messenger Bot - 如何使用NodeJS获取用户信息?
下面是我的聊天机器人的缩写版本的链接
这是代码的主要位,我认为需要改进(看到下面的机器人的其余部分的上下文中)
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?")
}
})
}
答
仔细检查您的访问令牌是否正确。
我也建议你检查错误消息是什么
console.log("error getting username", error);
答
发件人不在您的函数定义。
它被传递到你的其他函数中,或者在你的post请求处理函数的作用域中被挖掘。
确保发件人已定义,并且您的代码应该正常工作。
下面的行添加到您的getName功能:不定义
var sender = event.sender.id
答
你的变量名,应该增加让名字= ...,它工作正常
欢迎SO!你的输入是什么,你的预期输出是什么?哪些工作不正确? –
你有没有看过https://developers.facebook.com/docs/graph-api/reference/user(好像你有bodyObj.first_name)... –
谢谢!是的,我看了很多他们的文档。我只是不知道它应该是什么样子(GET请求以及如何将它们的名称保存为变量等)。我拥有的大部分内容都来自教程。使用上面的代码我没有收到机器人的回应。实际上,奇怪的是,机器人不止一次地对每个请求做出回应,但我不确定那可能如何。 – Jowens