Webex でメッセージをオウム返しする Bot の Lambda 用 Python サンプル

以前に下記のメッセージを書きました。

まず、作業用のディレクトリを作成します。 Lambda 環境で webexteamssdk を利用出来るようにする為に、後々作成する .zip ファイルに webexteamssdk を同梱します。 その為、webexteamssdk は作業用ディレクトリにインストールしておきます。

1
2
3
mkdir webex
cd webex
python -m pip install --target ./package webexteamssdk

次にコードを用意します。 BOT_ACCESS_TOKENBOT_ID は利用する環境に合わせて書き換えます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
from webexteamssdk import WebexTeamsAPI
import json


def lambda_handler(event, context):
    BOT_ACCESS_TOKEN = "ACCESS_TOKEN"
    BOT_ID = "BOT_ID"

    message_id = event["data"]["id"]
    user_id = event["data"]["personId"]
    room_id = event["data"]["roomId"]

    if user_id != BOT_ID:
        api = WebexTeamsAPI(access_token=BOT_ACCESS_TOKEN)
        message = api.messages.get(message_id).text
        api.messages.create(roomId=room_id, markdown=message)

    return {
        'statusCode': 200
    }

ここまで準備出来たらライブラリとコードを圧縮します。

1
zip -r9 ../lambda.zip .

これを Lambda へアップロードすれば完了です。