我正在尝试使用Slack's chat.postMessage API调用发送消息 . 我在HTTP GET中编码我的测试消息没有问题,但我试图在HTTP POST请求中使用JSON实现相同的结果 .
我一直在测试 curl
和Postman,但Slack似乎根本没有承认我的请求体 .
{
"ok": false,
"error": "not_authed"
}
在 curl
中,我的请求编码如下:
curl -H "Content-type: application/json" -X POST -d '{"token":"my-token-here","channel":"#channel-name-or-id","text":"Text here.","username":"otherusername"}'
在Postman中,这是原始的身体:
{
"token":"my-token-here",
"channel":"#channel-name-or-id",
"text":"Text here.",
"username":"otherusername"
}
我之前没有做过这样的事情,所以我不确定我是否遗漏了一些东西 . 谢谢!
10 回答
我有点晚了,但我希望这可以帮助其他像我一样偶然发现这个问题的人 . 我刚刚和Slack保持联系,这就是他们告诉我的:
因此,您的cURL行应如下所示:
我希望这有帮助! :)
这可能不符合完整答案的条件,但如果目的是发送消息附件,您可以发送
urlencode
d JSON结构作为attachments
参数的值,如此(为清晰起见,分成多行):attachments
的值是URL编码的[{"color":"good","fallback":"plain text","text":"colored text"}]
. 您应该能够使用所有附件属性described here .好的,重新阅读文档后我发现了:
和
curl
的例子 . 注意 Authorization Headers .尝试将每个属性放在自己的-d参数中,如下所示:
Slack已经更新,现在可以使用了 . 试试这个例子:
有关文档,请参见https://api.slack.com/incoming-webhooks .
截至 March 2018 , Slack 现在支持 POST 与 JSON 正文
Endpoint :
https://slack.com/api/chat.postMessage
Headers :
Authorization: Bearer xoxp-your-hardly-find-token-here
Body :
{"channel":"CH9NN37","text":"something from me!"}
注意 Authorization Headers 中的 Bearer .
not_authed
表示未提供身份验证令牌 .您在请求中传递了哪个令牌?您需要传递OAuth令牌,您可以从here获取该令牌 .
在邮差上你可以像这样构建你的请求:
网址(POST):https://slack.com/api/chat.postMessage
然后在
Headers
部分下放这两个 Headers :键(
Content-Type
)值(application/json
)键(
Authorization
)值(YOUR-TOKEN-NAME
)然后在
raw
中的raw
部分中输入您的数据:我在powershell中做到了这一点,它就像一个魅力 .