はじめに
line-bot-sdk-python
が version3
になってからのドキュメントや記事などが少なく、ユーザが送信した位置情報メッセージのハンドリングに詰まったので解決策を共有します。
環境
- Python3.11
- line-bot-sdk 3.9.0
- Flask 2.3.3
発生したこと
Flask
を利用してLINE Botを作成する際に,ユーザから送信されたメッセージの種類によって処理を変えたい場合, @handler.add
を利用するが,LINE Bot SDKがv3よりも前の方法だとうまくできませんでした.
解決した方法
ドキュメントなどに記載がなかったので line-bot-sdk
のGithubをたどりました.
その結果, LocationAction
とLocationMessageContent
が従来とは異なる場所に配置されてました.
以下,修正したimport
方法を共有します.(line-bot-sdkのlocation部分のみ抜粋)
v3
より前の場合
from linebot.models import LocationMessage, LocationAction
v3
以降
from linebot.v3.webhooks import LocationMessageContent
from linebot.v3.messaging.models.location_action import LocationAction
おわりに
line-bot-sdk
のバージョンが3になってからの記事がまだあまり出ていないので,位置情報以外にも画像や音声などのメッセージをハンドリングする方法もまとめて記事にしようと思います.
参考文献