らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Python から Cisco Webex へメッセージを送信する

Python から Cisco Webex へメッセージを送信する方法をメモしておきます。 ライブラリは webexteamssdk を利用します。

Step.1

webex for Developers へアクセスし、ログインしておきます。 もしアカウントが無ければ Sign Up しておきます。

f:id:sig9:20210805101242p:plain

Step.2

Getting Started with the Webex API から My Webex Apps をクリックして次へ進みます。

f:id:sig9:20210805101246p:plain

Step.3

Create a New App 画面が表示されます。 Create a Bot をクリックして次へ進みます。

f:id:sig9:20210805101249p:plain

Step.4

新規に Bot を作成します。

f:id:sig9:20210805101255p:plain

今回は以下のパラメータを入力しました。

Item Value Description
Bot Name Bot1 Bot の名前
Bot Username bot1 Bot へ話しかける (メンションする) 際に利用する名前。 自動的に末尾に @webex.bot が付与される
Icon Default 1 チャット上に表示するアイコン
Description My first bot. Bot の用途や注意点などの説明文

Step.5

Access Token が発行されました。 文字列長は 106 文字でした。 Copy Token をクリックして Access Token をクリップボードにコピーし、控えておきます (後の手順で利用します)。

f:id:sig9:20210805101259p:plain

Step.6

Bot からメッセージ送信の対象となるチャットルームを作成し、そこに作成済みの Bot も追加しておきます。 Bot からメッセージを送信するには Bot がユーザとして登録されている必要がありますので、忘れずユーザ追加します。

f:id:sig9:20210805101303p:plain

ユーザ追加されました。

f:id:sig9:20210805101306p:plain

Step.7

Bot からメッセージを送信するには対象チャットルームの Room ID が必要です。 Room ID は List Rooms API から取得出来ます。

f:id:sig9:20210805101309p:plain

Authorization の Use personal access token のチェックを外し、Barer に Bot 作成時に確認した Access Token を入力したら画面右下の Run をクリックして次へ進みます。

f:id:sig9:20210805101313p:plain

Step.9

正しく実行出来れば下記のように Room ID を含んだ Response を取得出来ます。 今回は「Bot が 1 チャットルームだけに参加している」ので Room ID は 1 つしか取得出来ていませんが、仮に「Bot が複数のチャットルームに参加している」のであれば Response には「複数の Room ID」が含まれます。

f:id:sig9:20210805101317p:plain

Step.10

ここからはメッセージを送信する Python スクリプトを用意します。 まず webexteamssdk をインストールします。

pip3 install webexteamssdk

以下のスクリプトを作成し、実行権限を付与しておきます。 ACCESS_TOKENROOM_ID は自分の環境に応じて読み替え、適切な値を入力します。

#!/usr/bin/env python3
from webexteamssdk import WebexTeamsAPI

BOT_ACCESS_TOKEN = "ACCESS_TOKEN"
ROOM_ID = "ROOM_ID"
markdown = "Hello World!"

api = WebexTeamsAPI(access_token=BOT_ACCESS_TOKEN)
messages = api.messages.create(roomId=ROOM_ID, markdown=markdown)
print(messages)

Step.11

用意した Python スクリプトを実行すると、指定したチャットルームへ以下にようにメッセージが送信されます。

f:id:sig9:20210805101320p:plain