LineBotAPI 3.xでメッセージを送ってみよう!
はじめに
- LineBot触ってみようかなと思っても最新のv3の記事があまりにも少なかった
- メッセージを送ることができればどんどん拡張することができると思うので、手助けになればうれしい
- 今回の手順では、一方的にメッセージを送るBotを作成します!
この手順では、LINE Developers登録からAPIキーの発行までの手順を省略しています。
以下の手順でAPIキー発行まで実施してください
https://developers.line.biz/ja/docs/messaging-api/getting-started/
LINE Messaging API SDK for Pythonってまず何者?
- Pythonを使ってLINE Messaging APIを簡単に利用するためのSDK
- これを使ってLineのメッセージを使ったアプリケーションを開発できる
まずは、環境を作ろう!
この手順は、以下の資料を参考に作成されております
https://github.com/line/line-bot-sdk-python
※PythonやPIPがインストールされている前提で記載します。
- LINE Messaging API SDK for Pythonをインストール
- 以下のコマンドをコマンドラインで実行します
pip install line-bot-sdk
- 以下のコマンドをコマンドラインで実行します
- APIキーを取得しよう!
- 取得手順は以下のURLから!
- 以下で必要な情報取得先
- ユーザーID
- チャネルの基本設定 -> あなたのユーザーID
- APIキー
- Messaging API設定 -> チャネルアクセストークン
- ユーザーID
- Hello worldしてみよう!
test.py
import linebot.v3.messaging import pprint import json configuration = linebot.v3.messaging.Configuration( host = "https://api.line.me" ) # access_tokenの取得方法は手順2で記載 configuration = linebot.v3.messaging.Configuration( access_token="ここにAPIキーを入力する" ) message = '{\"to\":\"ここにユーザーIDを入力する\",\"messages\":[{\"type\":\"text\",\"text\":\"\"}]}' message_dict = json.loads(message) # 送りたいメッセージを記載する.今回はHello World! message_dict['messages'][0]['text'] = "Hello World!" with linebot.v3.messaging.ApiClient(configuration) as api_client: api_instance = linebot.v3.messaging.MessagingApi(api_client) push_message_request = linebot.v3.messaging.PushMessageRequest.from_dict(message_dict) try: api_response = api_instance.push_message(push_message_request) print("The response of MessagingApi->push_message:\n") pprint(api_response) except Exception as e: print("Exception when calling MessagingApi->push_message: %s\n" % e)
- 実行してみよう!
python 作ったファイル.py
送信できたかな?
今回使ったコードの解説
- 今回必要なSDKの呼び出し
import linebot.v3.messaging import pprint import json
- 必要な定義を行う
- LINE BOT SDKを扱うにあたって必要な情報を与えます
- host
- どこに情報を渡すのか
- access_token
- 認証に使うTOKEN
- host
configuration = linebot.v3.messaging.Configuration( host = "https://api.line.me" ) # access_tokenの取得方法は手順2で記載 configuration = linebot.v3.messaging.Configuration( access_token="ここにAPIキーを入力する" )
- LINE BOT SDKを扱うにあたって必要な情報を与えます
- 送りたい情報を作成する
- messageはJson型で作成して、編集しやすいようにDict型に変換、内容の代入を行っている
message = '{\"to\":\"ここにユーザーIDを入力する\",\"messages\":[{\"type\":\"text\",\"text\":\"\"}]}' message_dict = json.loads(message) # 送りたいメッセージを記載する.今回はHello World! message_dict['messages'][0]['text'] = "Hello World!"
- messageはJson型で作成して、編集しやすいようにDict型に変換、内容の代入を行っている
- 情報をLINEに送信する
with linebot.v3.messaging.ApiClient(configuration) as api_client: api_instance = linebot.v3.messaging.MessagingApi(api_client) push_message_request = linebot.v3.messaging.PushMessageRequest.from_dict(message_dict) try: api_response = api_instance.push_message(push_message_request) print("The response of MessagingApi->push_message:\n") pprint(api_response) except Exception as e: print("Exception when calling MessagingApi->push_message: %s\n" % e)
まとめ
今回は、pythonを使ってLINEにメッセージを送ってみました
cronなどを使って決まった時間にメッセージを送ってもよいし、面白いことがいろいろできるとよいですね
間違いなどあれば指摘していただけると嬉しいです~!
参考資料