らくがきちょう

なんとなく

Python から Microsoft Teams へ投稿する

pymsteams というライブラリを使うと、非常に簡単に Python から Microsoft Teams へメッセージを送信することが出来ます。 具体的には Microsoft Teams 上に Incoming Webhook を作成し、その URL に対して Python からメッセージを送信することになります。 今回は手順とサンプルコードをメモしておきます。

Teams に Webhook を作成する

まず、Microsoft Teams に Incoming Webhook を作成します。

Step.1

Microsoft Teams で該当チャンネル名の右横にある「…」をクリックし、表示されるメニューから「コネクタ」をクリックします。

f:id:sig9:20190619151745p:plain

Step.2

(初期状態では左側のメニューから「すべて」が選択されているかも知れませんが)表示されたコネクタ一覧から「Incoming Webhook」を探し、右側にある「追加」をクリックします。

f:id:sig9:20190619151756p:plain

Step.3

テキストフィールドが表示されるので、この Webhook に割り当てたい名前を入力し、画面下側にある「作成」をクリックします。 必要であれば Webhook 用の画像も差し替えておきます (後から画像を変更することも可能です)。

f:id:sig9:20190619151807p:plain

Step.4

Webhook が作成され、URL が表示されます。 この URL は後ほど、Python から参照することになるので URL 右横のマークをクリックしてクリックボードへコピーし、エディタなどに転記しておきます。

f:id:sig9:20190619151816p:plain

Step.5

構成された Webhook はコネクタ管理画面の「構成済み」メニューの中に表示されます。 「Webhook の URL が分からなくなった場合」や「Webhook の画像を変更したくなった場合」は、ここから URL 確認・画像変更を行うことが出来ます。

f:id:sig9:20190619151828p:plain

Step.6

Webhook が追加されると、該当チャンネルには以下のようなメッセージが表示されます。

f:id:sig9:20190619151839p:plain

pymsteams からメッセージを送信する

Python から Micrsoft Teams にメッセージを送信するには pymsteams というライブラリを使うのが簡単です。 まずは pip 自体をインストールし、続いて pymsteams をインストールします。

yum -y install gcc python-devel
curl -L https://bootstrap.pypa.io/get-pip.py | python
pip install pymsteams

pymsteams を使って Microsoft Teams へメッセージするサンプルは以下の通りです。 <Microsoft Webhook URL> には Microsoft Teams 上に作成した Webhook の URL を入力します。

import pymsteams

myTeamsMessage = pymsteams.connectorcard("<Microsoft Webhook URL>")
myTeamsMessage.title("Message Title")
myTeamsMessage.text("Message Body")
myTeamsMessage.send()

今回は send-to-teams.py という名前でファイルを新規作成しました。 これを実行してみます。

python send-to-teams.py

該当のチャンネルに意図したメッセージが表示されていれば成功です。

f:id:sig9:20190619151850p:plain