javascript - GroupMe 提及 API
问题描述
我正在创建一个 GroupMe 机器人,它可以帮助我管理一些我是管理员的大型群组。现在,我决定在本地服务器上运行的简单 HTML 页面上使用 Javascript 构建一个简单的测试机器人,以使基本功能正常工作。我已经完成了我想要的大部分工作,但是提及功能是我仍然无法弄清楚的东西。将提及消息发送到组的相关 POST 的处理方式如下:
$.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”是我要发送的实际消息文本,“提到的消息块”包含所有提及。因此,理想情况下,当我发送此消息时,我想在 GroupMe 中提出类似的内容:“大家好,请参加今晚的会议!@User1 @User2 ...”
但是,在当前状态下,这篇文章只是将所有内容作为引用文本块发送,这意味着实际提及功能不会触发,并且提及的用户实际上不会收到通知。
这就是它变得奇怪的地方:如果我以与上面相同的方式对 Ajax 请求的数据部分和机器人的 POST URL 执行 curl -d,则提及将正常工作。我一生都无法弄清楚为什么它可以与 cURL 而不是 Ajax 一起使用,但也许有一些简单的修复或解决方法可以解决这个问题。
非常感谢您提供的任何帮助!
解决方案
嘿,所以我遇到了类似的问题,它只会发送没有通知或提及的消息。我发现我正在使用我的用户 ID,但没有在它周围加上引号。你可能需要做类似的事情
"user_ids": [\"提到的MembersUserIds\"]
此外,发送的消息会给用户一个提及的通知,但文本本身并没有为我在消息块中添加“@username”。也许它只是在使用应用程序时自动添加为消息的一部分。
推荐阅读
- gatsby - Gatsby v1 和 netlify 持续集成
- reactjs - 将 React 页面解析为字符串
- angular - 在 authGaurd 中以角度获取未定义的对象
- mysql - 让认证用户进入 vuejs 对象
- go - 安装 golang.org/x/tools/cmd/guru 错误
- c# - 检测列重新排序 - ColumnDisplayIndexChanged 多次引发
- laravel - 别名的命名空间在哪里定义?
- javascript - 延迟后如何显示模态?
- android - kotlin android中带有注释的抽象val
- laravel - 当我在 laravel 中发送邮件时出现错误