如何使用 curl 命令响应 Slack 线程

How to respond to Slack thread with curl command

我试图让我的 curl 工作,然后我尝试创建对线程的响应。

我一直在关注这个文档: https://api.slack.com/docs/message-threading#threads_party 从测试人员那里,我得到了拨打电话所需的信息: https://api.slack.com/methods/chat.postMessage/test

如果我试着做一个像这样的卷曲:

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

每次我这样做,我都会收到回复 "No-text",有人可以帮助我实现我的目标吗,我只想回复一条消息。

您的 curl 语句中有几个问题。

  1. 传入的 webhook 不支持线程,因此您需要使用 chat.postMessage API 方法代替。如 documentation 中所述:

    Incoming webhooks do not support threads. If you want your app to respond with a message in a thread, use chat.postMessage.

  2. 您的 JSON 语法不正确。没有message属性。取而代之的是制作一个包含所有需要的属性(token 除外)的平面 JSON 数组,例如channeltextthread_ts。请参阅此处了解 chat.postMessage

  3. 的完整语法
  4. 以 JSON 身份发帖时,您必须在授权 header 中包含您的令牌,而不是在请求的 body 中。正如 here 更详细地解释的那样。

  5. 最后但同样重要的是,我建议指定字符集,否则您会收到警告。

完整的卷曲如下所示:

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"}'