TIL

Today I Leaned. 仕事で知ったことや、つまづいたことを時間のある時にメモしておく

PythonでSlackにメッセージを送信する

SlackのIncomingWebHookを使ってPythonからメッセージを送信してみる。

ここの「incoming webhook integration」でメッセージを送信したいチャンネルのURLを取得する。

取得したURLに対してPOST送信すればメッセージ送信ができる。POST送信はrequestsを使って行う。

>>> import requests
>>> import json
>>> payload = {'text': 'hello!'}
>>> requests.post(取得したURL, data=json.dumps(payload))
<Response [200]>

これで以下のようにメッセージが送信されているはず

f:id:tmg1998:20171014224146p:plain:w300


送信するデータについて

post()メソッドのdataで色々なことができるらしい。Incoming WebHooks | Slack App Directoryをそのままメモしておく。

text

チャンネルに送信するメッセージ

payload={'text': 'hello!\nworld!'}

f:id:tmg1998:20171014230015p:plain:w280

リンクを付ける

リンクを付けるにはリンクにしたいURLを< >で囲む。

payload={'text': '<http://tmg0525.hatenadiary.jp>'}

また、表示文字を変更するときには<url|表示文字>とする。

payload={'text': '<http://tmg0525.hatenadiary.jp| ここをクリック>'}

f:id:tmg1998:20171014231704p:plain:w280

username

メッセージを送信するボット名

payload={'username': 'botbotbot', 'text': 'hello!'}

f:id:tmg1998:20171014234102p:plain:w260

icon_url

アイコンのURL

payload={'icon_url': 'https://slack.com/img/icons/app-57.png', 'text': 'hello'}

f:id:tmg1998:20171014234711p:plain:w280

icon_emoji

アイコンの絵文字

payload={'icon_emoji': ':dog:', 'text': 'hello'}

f:id:tmg1998:20171015000032p:plain:w280



参考文献