Mattermost(团队聊天)- 如何通过 curl post 到频道?
Mattermost (team chat) - how to post to a channel via curl?
我们正在使用 mattermost
作为 slack
的内部托管替代方案。
如何写入 mattermost 中的频道,例如通过脚本,使用 curl
?
我需要知道:
- 如何从 mattermost
获得 "integration key"
curl
命令的格式
与 slack
一起使用的脚本示例:
SLACK_URL='https://hooks.slack.com/services/my-long-integration-key'
message='Project XYZ was released successfully.'
curl -X POST -H "Content-Type: application/json" \
--data "{ \"channel\": \"#releases\", \"username\": \"$me\", \"text\": \"$MESSAGE\" }" \
$SLACK_URL &> /dev/null
确实有一个 Mattermost API(相当于 slack-api
),但我正在努力寻找一个很好的例子来说明我想做什么。
谢谢
这是格式,使用 curl
和 json 有效负载:
curl -i -X POST -d 'payload={"text": "Hello, world!", "username":"xxx", "channel":"yyy"}' \
https://mattermost.intern.mycompany.com/hooks/abcdefg1234567
对于其他人,我建议除了使用 curl
之外还使用 jq
程序(您的发行版可能在标准回购协议中有一个程序包)。它会将任何文本输入转换为有效的 JSON 数据。
例如名为 matmo.sh
:
的脚本
#!/bin/bash
mattermost_hook_url='https://mattermost.example.com/hooks/long-random-hook-id'
jq --slurp --raw-input --compact-output --arg channel "" --arg username "" '{$channel, $username, text:.}' \
| curl -H 'Content-Type: application/json' --data @- "$mattermost_hook_url" &> /dev/null
然后像这样通过管道传递给它:
command-that-produces-output | ./matmo.sh '#releases' releasebot
我们正在使用 mattermost
作为 slack
的内部托管替代方案。
如何写入 mattermost 中的频道,例如通过脚本,使用 curl
?
我需要知道:
- 如何从 mattermost 获得 "integration key"
curl
命令的格式
与 slack
一起使用的脚本示例:
SLACK_URL='https://hooks.slack.com/services/my-long-integration-key'
message='Project XYZ was released successfully.'
curl -X POST -H "Content-Type: application/json" \
--data "{ \"channel\": \"#releases\", \"username\": \"$me\", \"text\": \"$MESSAGE\" }" \
$SLACK_URL &> /dev/null
确实有一个 Mattermost API(相当于 slack-api
),但我正在努力寻找一个很好的例子来说明我想做什么。
谢谢
这是格式,使用 curl
和 json 有效负载:
curl -i -X POST -d 'payload={"text": "Hello, world!", "username":"xxx", "channel":"yyy"}' \
https://mattermost.intern.mycompany.com/hooks/abcdefg1234567
对于其他人,我建议除了使用 curl
之外还使用 jq
程序(您的发行版可能在标准回购协议中有一个程序包)。它会将任何文本输入转换为有效的 JSON 数据。
例如名为 matmo.sh
:
#!/bin/bash
mattermost_hook_url='https://mattermost.example.com/hooks/long-random-hook-id'
jq --slurp --raw-input --compact-output --arg channel "" --arg username "" '{$channel, $username, text:.}' \
| curl -H 'Content-Type: application/json' --data @- "$mattermost_hook_url" &> /dev/null
然后像这样通过管道传递给它:
command-that-produces-output | ./matmo.sh '#releases' releasebot