我们使用mattermost
作为slack
的内部托管替代方案。
如何通过脚本使用curl
写入 mattermost 中的频道?
我需要知道:
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
),但我正在努力做一个我想做的好例子。
由于
答案 0 :(得分:1)
这里是格式,使用curl
和json有效负载:
curl -i -X POST -d 'payload={"text": "Hello, world!", "username":"xxx", "channel":"yyy"}' \
https://mattermost.intern.mycompany.com/hooks/abcdefg1234567
答案 1 :(得分:1)
对于其他人,我建议除了使用curl
之外,还使用jq
程序(您的发行版可能在标准存储库中有此功能)。它将任何文本输入转换为有效的JSON数据。
例如名为matmo.sh
的脚本:
#!/bin/bash
MATTERMOST_HOOK_URL=https://mattermost.example.com/hooks/long-random-hook-id
data="$(jq --slurp --raw-input --compact-output --arg channel $1 --arg username $2 '{$channel, $username, text:.}')"
curl -X POST -H 'Content-Type: application/json' -d "$data" "$MATTERMOST_HOOK_URL" &> /dev/null
然后像这样使用它:
command-that-produces-output | ./matmo.sh '#releases' 'releasebot'