3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アウトプットを習慣付ける(@sugichan55)Advent Calendar 2023

Day 6

LINE Messaging API SDK for Pythonでメッセージを送ってみよう!

Last updated at Posted at 2023-12-05

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がインストールされている前提で記載します。

  1. LINE Messaging API SDK for Pythonをインストール
    • 以下のコマンドをコマンドラインで実行します
      pip install line-bot-sdk
      
  2. APIキーを取得しよう!
  3. 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)
    
  4. 実行してみよう!
    python 作ったファイル.py
    

送信できたかな?

今回使ったコードの解説

  1. 今回必要なSDKの呼び出し
    import linebot.v3.messaging
    import pprint
    import json
    
  2. 必要な定義を行う
    • LINE BOT SDKを扱うにあたって必要な情報を与えます
      • host
        • どこに情報を渡すのか
      • access_token
        • 認証に使うTOKEN
    configuration = linebot.v3.messaging.Configuration(
        host = "https://api.line.me"
    )
    # access_tokenの取得方法は手順2で記載
    configuration = linebot.v3.messaging.Configuration(
        access_token="ここにAPIキーを入力する"
    )
    
  3. 送りたい情報を作成する
    • messageはJson型で作成して、編集しやすいようにDict型に変換、内容の代入を行っている
      message = '{\"to\":\"ここにユーザーIDを入力する\",\"messages\":[{\"type\":\"text\",\"text\":\"\"}]}'
      
      message_dict = json.loads(message)
      # 送りたいメッセージを記載する.今回はHello World!
      message_dict['messages'][0]['text'] = "Hello World!"
      
  4. 情報を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などを使って決まった時間にメッセージを送ってもよいし、面白いことがいろいろできるとよいですね
間違いなどあれば指摘していただけると嬉しいです~!

参考資料

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?