この記事について
| 環境 | Python + line-bot-sdk-python |
|---|---|
| 目的 | クイックリプライのpostbackで、メッセージイベントを発生させずにテキストを表示する |
| 結果 | textをdisplayTextに変えたらポストバックイベントのみになった |
つまずきポイント要約
- textプロパティはメッセージ送信を伴うので、両方のイベントが発生する
- displayTextなら表示のみでメッセージイベントは発生しない
- textプロパティは廃止予定
事象
クイックリプライのポストバックイベントにtextプロパティを設定すると、ポストバックイベントとメッセージイベントの両方が発生する問題が発生。
views.py
quick_reply=QuickReply(
items=[
QuickReplyButton(
action=PostbackAction(
label="りんご", data="fruits", text="りんご",
)
)
]
),
原因
postbackアクションのtextプロパティは、postbackデータの送信と同時にテキストをメッセージとして送信する仕様のため、ポストバックイベントとメッセージイベントの両方が発生する。
対処
textプロパティを displayTextプロパティに変更するとメッセージイベントは発生しなくなる。
quick_reply=QuickReply(
items=[
QuickReplyButton(
action=PostbackAction(
label="りんご", data="fruits", displayText="りんご",
)
)
]
),
なお、ポストバックイベント内の textプロパティは廃止予定。
