首页 > 解决方案 > 如何使用 curl 命令响应 Slack 线程

问题描述

我试图让我的 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

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

标签: curlslackslack-api

解决方案


您的 curl 声明中有几个问题。

  1. 传入的 webhook 不支持线程,因此您需要使用chat.postMessageAPI 方法。如文档中所述:

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

  2. 您的 JSON 语法不正确。没有message财产。而是创建一个包含所有需要属性(除了token)的平面 JSON 数组,例如channel, text, thread_ts. 请参阅此处以获取完整的语法chat.postMessage

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

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

完整的卷曲看起来像这样:

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

推荐阅读