如何使用curl命令回复Slack线程

3
我正试图让我的curl工作,然后尝试创建对线程的回复。 我一直在按照这个文档进行操作:https://api.slack.com/docs/message-threading#threads_party ,并从测试者那里获得了调用所需的信息:https://api.slack.com/methods/chat.postMessage/test。 如果我尝试制作一个看起来像这样的curl:
curl -X POST -H 'Content-type: application/json' --data '{"token":"MYTOKEN","channel":"Chanel-ID", "message": {"text":"curl", "thread_ts":"1543586718.000800"}}' https://hooks.slack.com/services/MYSLACKHOOKID

每次我这样做时,都会得到“无文本”的响应,有人可以帮助我实现我的目标吗?我只想回复一条信息。
1个回答

4
你的curl语句存在几个问题。
  1. 传入的Webhooks不支持线程,因此您需要使用chat.postMessage API方法。如文档所述:

    传入的Webhooks不支持线程。如果您希望您的应用程序在线程中响应消息,请使用chat.postMessage。

  2. 您的JSON语法不正确。没有message属性。相反,制作一个平坦的JSON数组,其中包含所有必需的属性(除了token),例如channeltextthread_ts。请参阅此处chat.postMessage的完整语法。

  3. 当以JSON格式发布时,您必须在授权标头中包含您的令牌,而不是在请求正文中包含。如此处详细解释。

  4. 最后,但并非不重要的是,建议指定字符集,否则会收到警告。

完整的curl命令如下:

curl https://slack.com/api/chat.postMessage -X POST -H 'Content-type: application/json; charset=utf-8' -H "Authorization: Bearer TOKEN" --data '{"channel":"CHANNEL-ID", "text":"curl", "thread_ts":"THREAD-TS"}'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接