はじめに
- SlackではIntegrationの一つにIncoming Webhooksがあり、Incoming Webhooksを使うと、特定のChannelに外部からメッセージを送信できます
- 送信するメッセージは、次のようなJSONになります
{
"text": "This is a line of text.\nAnd this is another one."
}
簡易的なカスタマイズ
-
username
,icon_url
,icon_emoji
をJSONに指定することで、メッセージの送信者名、アバター画像をカスタマイズできます。
たとえば、次のJSONを送信すると、
{
"text": "I found a MONSTER! ",
"channel": "#incoming-test",
"username": "Baymax",
"icon_emoji": ":baymax:"
}
このようにタイムラインに表示されます。
メンションをリンクにしたい場合
@name
をリンクにしたい場合
"link_names": 1
を付ける。
リッチなフォーマット
- リッチなフォーマットで表示させたい場合は、Attachmentsの書式に従ってJSONを作成します
- 詳しくは Attachments を参照してください
たとえば、次のJSONを送信すると、
{
"channel": "#incoming-test",
"username": "Baymax",
"icon_emoji": ":baymax:",
"text": "I found a MONSTER! ",
"attachments": [
{
"color": "#36a64f",
"image_url": "http://xxx/uploads/monster/image/3/thumb_thany1.jpg",
"fields": [
{
"title": "Priority",
"value": "High",
"short": false
}
]
},
{
"color": "danger",
"image_url": "http://xxx/uploads/monster/image/3/thumb_thany1.jpg"
}
]
}
このようにタイムラインに表示されます。
JSONを送信する場合のTips
curlコマンドのパラメータに-d @xxxx.json
をつけると、xxxx.json
ファイルを渡せます。
$ curl -X POST http://localhost:4567/message -d @message.json
$ cat message.json
{
"text": "I found a MONSTER! ",
"channel": "#incoming-test",
"username": "Baymax",
"icon_emoji": ":baymax:"
}