我正在创建一个GroupMe机器人,它将帮助我管理我所管理的几个大型群组。目前,我已经决定在本地服务器上运行的简单HTML页面上使用Javascript构建一个简单的测试机器人,以使基本功能正常工作。我已经得到了我想要的大部分功能,但是提及功能仍然是我不能理解的。向群发送提及消息的相关帖子是这样处理的:
$.ajax({
url: botPostUrl,
type:"POST",
success: function(result){
console.log(result);
},
error: function(error){
console.log(`Error ${error}`);
},
data: {
"text" : messageContents + "\n" + mentionedMessageBlock,
"bot_id" : "my_bot_id",
"attachments": [
{
"type": "mentions",
"user_ids": [mentionedMembersUserIds],
"loci": [loci]
}
]
},
async: false
});其中'messageContents‘是我想要发送的实际消息文本,而'mentionedMessageBlock’包含所有提到的内容。所以理想情况下,当我发送这封邮件时,我希望在GroupMe中出现这样的内容:“嘿,伙计们,请来参加今晚的会议!@User1 @user2...”
然而,在目前的状态下,这篇文章只是以引用文本块的形式发送所有内容,这意味着实际的提及功能不会触发,提到的用户实际上也不会收到通知。
这就是它变得奇怪的地方:如果我以与上面相同的方式对Ajax请求的数据部分和机器人的POST URL执行curl -d,那么上述内容将正确工作。我无法理解为什么它可以与cURL一起工作,而不能与Ajax一起工作,但也许有一些简单的修复或解决方法。
非常感谢你所能给予的任何帮助!
发布于 2020-05-26 06:04:15
嘿,所以我遇到了一个类似的问题,它只会发送一条没有通知或提及的消息。我发现我使用的是我的userid,但没有在它两边加上引号。你可能需要做一些像这样的事情
"user_ids":\“提及成员用户\”
此外,发送的消息将向用户发出提及的通知,但文本本身不会为我在消息块中添加"@username“。也许它只是在使用应用程序时自动添加为消息的一部分。
https://stackoverflow.com/questions/53331415
复制相似问题