Mattermost(团队聊天) - 如何通过curl发布到频道?

时间:2016-04-12 10:54:24

标签: curl slack-api slack mattermost

我们使用mattermost作为slack的内部托管替代方案。

如何通过脚本使用curl写入 mattermost 中的频道?

我需要知道:

  • 如何获得"集成键"来自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),但我正在努力做一个我想做的好例子。

由于

2 个答案:

答案 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'