我正在玩一个简单的Facebook Messenger聊天机器人,我无法按顺序发送消息.
在上面的例子中,它应该按顺序打印"Hello!","1","2","3".我目前正在关注这里发现的Facebook文档来实现这个简单的文本消息功能.我在下面包含了我的Express Node.JS服务器代码:
定义sendTextMessage()功能:
var request = require("request");
function sendTextMessage(user, text) {
messageData = {
text: text
};
request({
url: "https://graph.facebook.com/v2.6/me/messages",
qs: {access_token: PAGE_ACCESS_TOKEN},
method: "POST",
json: {
recipient: {id: user},
message: messageData
}
}, function(error, response, body) {
if (error) {
console.log("Error sending message: ", error);
} else if (response.body.error) {
console.log("Error: ", response.body.error);
} else {
console.log("Message successfully send.")
}
});
}
Run Code Online (Sandbox Code Playgroud)
用它来发送回复:
sendTextMessage(user, "Hello!");
sendTextMessage(user, "1");
sendTextMessage(user, "2");
sendTextMessage(user, "3");
Run Code Online (Sandbox Code Playgroud)
我甚至尝试实现一个对消息进行 …
有一种方法可以从移动客户端将我的位置发送到facebook-messenger,但是如何从机器人发送一些位置?(信使平台api)
当我尝试从bot发送类似的结构时,我收到一个错误:
(#100) Unsupported attachment type
有没有办法从机器人发送我的位置?
收到的bot消息示例:
{
"object": "page",
"entry": [{
"id": "1719442148306048",
"time": 1466780344978,
"messaging": [{
"sender": {"id": "123456789"},
"recipient": {"id": "987654321"},
"timestamp": 1466780344847,
"message": {
"mid": "mid.12345698875:c80066d69b6cee1779",
"seq": 65,
"attachments": [{
"title": "Dmitry's Location",
"url": "Link to bing.com through facebook redirect"
"type": "location",
"payload": {"coordinates": {"lat": 55, "long": 37}}
}]
}
}]
}]
}
Run Code Online (Sandbox Code Playgroud)
我尝试发送带附件的邮件,如下所示:
"attachment": {
"type": "location",
"payload": {"coordinates": {"lat": 55, "long": 37}}
}
Run Code Online (Sandbox Code Playgroud) 如果我的机器人提出不同的问题,如果用户回答了每个问题,我如何找出哪个答案与哪个问题相关.有一个称为元数据的字段,您可以将其附加到sendTextMessage API,但是当用户响应时,此元数据将以未定义的形式出现.你们是否使用任何节点缓存来跟踪状态或FSM,如machina.js?我怎样才能最好地弄清楚我们目前陷入的对话?
我按照这个帖子中的解决方案,它仍然无法正常工作 如何在facebook messenger bot中设置"开始"按钮以及何时发送欢迎消息
我尝试了graph.facebook.com/v2.6/me/thread_settings?access_token=xxxxx和graph.facebook.com/v2.6/page_id/thread_settings?access_token=xxxxx与原始身体
{
"setting_type":"call_to_actions",
"thread_state":"new_thread",
"call_to_actions":[
{
"payload":"USER_DEFINED_PAYLOAD"
}
]
}
Run Code Online (Sandbox Code Playgroud)
响应消息是这样的
{
"result": "Successfully added new_thread's CTAs"
}
Run Code Online (Sandbox Code Playgroud)
但欢迎屏幕中的消息只是显示"输入消息......"
请帮忙.这太令人沮丧了.FB开发者网站上的文档根本没有帮助 https://developers.facebook.com/docs/messenger-platform/thread-settings/get-started-button
facebook facebook-graph-api facebook-messenger facebook-chatbot
我正在尝试使用我开发的Facebook Chatbot记录自定义事件,但是我不能为我的生活找到custom_events类型的参考.
其参考中列出的示例显示fb_mobile_purchase为自定义eventName.我不希望这样,我找不到任何列出其他类型的地方.
我希望能够跟踪聊天机器人向用户发送特定消息的时间,但只需设置eventName任何内容就会在Google Analytics中生成事件名称Reserved5.
在Facebook文档中是否有对eventNames的引用?
我想格式化(更改字体大小/文本颜色/应用文本样式 - 粗体/下划线/斜体等)响应文本发送给Facebook聊天机器人用户.
我没有在messenger API中看到任何此类支持.只想确认是否支持?有没有其他方法/方法来实现这一目标?
提前谢谢,picku
最近,我正在尝试为自己构建一个机器人.当我使用ngrok在本地测试我的僵尸程序时,它可以完美运行,但是当我部署到AWS时,我开始偶尔看到下面捕获的错误,并且没有导致从Facebook发送到我的服务器的webhook请求.我不知道什么可能出错.我已经检查了使用tcpflow到我的服务器的请求,但是没有运气,似乎Facebook没有将该特定请求发送到我的服务器.这是一个非常奇怪的问题,发生在我的机器人对话流程的特定点上.我总是需要重复我的回答或我的回发才能让它发挥作用.
一些基本的服务器信息(不知道这是否重要):
如果有人能解开我的神秘,我真的很感激.谢谢.
仅供参考,我已将此报告给Facebook:https://developers.facebook.com/bugs/1825253057751227
我有一个Facebook机器人,我已将其与Facebook页面连接.但要公开发布,我必须等待Facebook的批准.
如果你必须制作一个单一的机器人不是问题,如果你必须在比例级别上做这个问题(例如:100多个机器人).
作为Chatfuel或Content Api的平台允许您只选择您拥有的页面并自动连接机器人.
几分钟内,机器人就可以公开发布,在Facebook上跳过审查阶段(显然).
我在Facebook开发者指南中没有找到任何关于它的信息,有一种内部API不适用于所有人?如果是这样,您如何请求访问?
我正在构建一个node.js聊天机器人,然后我将它部署在heroku上.该应用程序使用webhooks,它必须位于服务器可以访问的公共URL.因此,在我的机器上本地运行服务器将无法正常工作.有没有办法可以远程调试我的应用程序?有小费吗?
facebook-chatbot ×10
facebook ×5
chatbot ×4
bots ×3
node.js ×3
messenger ×2
amazon-ec2 ×1
heroku ×1
javascript ×1
wit.ai ×1