メインコンテンツまでスキップ

メッセージのリスニング

あなたのアプリがアクセス権限を持つメッセージの投稿イベントをリッスンするには message() メソッドを利用します。このメソッドは typemessage ではないイベントを処理対象から除外します。

message() の引数には str 型または re.Pattern オブジェクトを指定できます。この条件のパターンに一致しないメッセージは除外されます。

指定可能な引数の一覧はモジュールドキュメントを参考にしてください。
# '👋' が含まれるすべてのメッセージに一致
@app.message(":wave:")
def say_hello(message, say):
user = message['user']
say(f"Hi there, <@{user}>!")

正規表現パターンの利用

文字列の代わりに re.compile() メソッドを使用すれば、より細やかな条件指定ができます。

import re

@app.message(re.compile("(hi|hello|hey)"))
def say_hello_regex(say, context):
# 正規表現のマッチ結果は context.matches に設定される
greeting = context['matches'][0]
say(f"{greeting}, how are you?")