gpt4 book ai didi

node.js - Facebook Messenger bot 未按顺序发送消息

转载 作者:IT老高 更新时间:2023-10-28 23:16:03 25 4
gpt4 key购买 nike

我正在构建一个简单的 Facebook Messenger 聊天机器人,但无法按顺序发送消息。

enter image description here

在上面的示例中,它应该按顺序打印“Hello!”、“1”、“2”、“3”。我目前正在关注找到的 Facebook 文档 here来实现这个简单的短信功能。我在下面包含了我的 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.")
}
});
}

使用它来发送响应:

sendTextMessage(user, "Hello!");
sendTextMessage(user, "1");
sendTextMessage(user, "2");
sendTextMessage(user, "3");

我什至尝试实现一个简单的队列,它将消息排队,并且在每个 request 的成功回调之后一次只发送一条消息。这让我怀疑我没有正确地与 Messenger API 交互。

有人遇到过这个问题吗?如何让消息按顺序发送?谢谢!

编辑

因为我实现了一个简单的队列但仍然遇到这个问题,所以我在此处包含了我的简单队列系统的代码。

var queue = [];
var queueProcessing = false;

function queueRequest(request) {
queue.push(request);
if (queueProcessing) {
return;
}
queueProcessing = true;
processQueue();
}

function processQueue() {
if (queue.length == 0) {
queueProcessing = false;
return;
}
var currentRequest = queue.shift();
request(currentRequest, function(error, response, body) {
if (error || response.body.error) {
console.log("Error sending messages!");
}
processQueue();
});
}

queueRequest(/* Message 1 */);
queueRequest(/* Message 2 */);
queueRequest(/* Message 3 */);

更新

这个“错误”已报告给 Facebook,但听起来他们不会修复它。请阅读 Facebook 帖子 here 上的票务线程有关他们所说的内容的详细信息。 (感谢 Louise 引起 Facebook 的关注)

最佳答案

我向 Facebook 提交了一份关于此问题的错误报告,因为我遇到了同样的问题。他们承认这确实是一个错误并正在努力修复它:https://developers.facebook.com/bugs/565416400306038

关于node.js - Facebook Messenger bot 未按顺序发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com