LINE Notify トーク テキスト 画像 送信 Python

今回は、LINE(ライン)のトークに、簡単なテキストと画像を送信するメモとなります。

コードはPythonで実装し、トーク通知用APIのLINE Notify(https://notify-bot.line.me/ja/)を利用します。

 

前提として、LINEアカウントを持っていて、

送信対象のトークが存在している前提での内容となります。

 

私の手元では、PyCharmでPythonを書いて試してみました。

同じ様にPyCharmを利用する場合、以下を参考にプロジェクトを作成してみて下さい。

Python PyCharm HelloWorld

 

テスト環境

・OS:mac OS Sur 11.5.2

・PyCharm CE:2021.3

・Python:3.9

 


LINE Notify 簡易概要

LINEのトークに簡単に、テキストや画像などの情報を送信できる連携用サービスです。

  • LINEアカウントを持っていれば利用可能(基本無料)
  • 自分のアカウントが参加しているトークルームに、情報をリクエスト送信可能
  • 1ユーザーあたり100個までトークンを発行可能
  • 1つのユーザー連携につき、デフォルト1時間に1000回までリクエスト送信可能

詳細は公式情報を参照ください。

LINE Notify API Document

 


LINE Notify アカウント登録

まずは、LINE Notifyを利用するために、

LINE NotifyにLINEアカウントでログインを行います。

・LINE Notify(https://notify-bot.line.me/ja/)

LINE Notify

 

LINE Notify

 

 


アクセストークン発行・連携

ログインしたら、実装用のトークンを発行します。

2022/1/16時点では、マイページの下部より発行できます。

LINE Notify token

アクセストークンの発行(開発者向け)の部分にある、

トークンを発行するをクリックして発行します。

LINE Notify token

トークンを発行する画面が表示されたら、

任意のトークン名を入力し、対象のトークルームを選択して、発行するボタンをクリックします。

LINE Notify select talk room

 

トークルームと連携されると、連携中サービスに表示されます。

連携を解除する場合は、削除ボタンをクリックします。

LINE Notify delete token


トーク メッセージ送信

まずは、トークにメッセージを送信させてみます。

import requests


def main():
    send_line_notify('てすとてすと_abc')


def send_line_notify(notification_message):
    # LineNotify 連携用トークン・キー準備
    line_notify_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    line_notify_api = 'https://notify-api.line.me/api/notify'

    # httpヘッダー設定
    headers = {'Authorization': f'Bearer {line_notify_token}'}

    # トーク送信メッセージ設定
    data = {'message': f'message: {notification_message}'}

    # Post実行
    requests.post(line_notify_api, headers=headers, data=data)


if __name__ == "__main__":
    main()

 

LINE Notify python

以下のトークン部分は、自身で発行したトークン文字列を指定して下さい。

# LineNotify 連携用トークン・キー準備
line_notify_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

PyCharmの緑三角マーク(実行ボタン)などから、プログラムを実行します。

LINE Notify python pycharm

 

実行後、LINEアプリなどで確認を行います。

今回は、LINE Notifyのトークルームに送信しました。

LINE Notify Application

 

送信されるメッセージは、messageで指定された文字列が送信されます。

def main():
    send_line_notify('てすとてすと_abc')

def send_line_notify(notification_message):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
省略
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# トーク送信メッセージ設定
data = {'message': f'message: {notification_message}'}

 

LINE Notify python

 


トーク 画像 送信

今度は、画像を送信してみます。

import requests, os


def main():
    send_image_line_notify()


def send_image_line_notify():
    # カレントディレクトリを、送信画像が配置されているパスに変更
    os.chdir(os.getcwd() + '/png')

    # LineNotify 連携用トークン・キー準備
    line_notify_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    line_notify_api = 'https://notify-api.line.me/api/notify'

    # payload・httpヘッダー設定
    payload = {'message': 'テスト通知1'}
    headers = {'Authorization': 'Bearer ' + line_notify_token}

    # 送信画像設定
    files = {'imageFile': open("110.png", "rb")}  # バイナリファイルオープン

    # post実行
    line_notify = requests.post(line_notify_api, data=payload, headers=headers, files=files)


if __name__ == "__main__":
    main()

 

LINE Notify python

以下のトークン部分は、自身で発行したトークン文字列を指定して下さい。

# LineNotify 連携用トークン・キー準備
line_notify_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

また、今回はpngというフォルダを用意して、

事前に送信用の画像を準備しておきました。

LINE Notify sample image

プログラム上で、送信対象の画像をファイル名指定しています。

# 送信画像設定
files = {'imageFile': open("110.png", "rb")} # バイナリファイルオープン

また、今回は事前にプログラムの実行ディレクトリを、

画像の配置ディレクトリに変更していますが、相対パス指定などでも実行できると思います。

# カレントディレクトリを、送信画像が配置されているパスに変更
os.chdir(os.getcwd() + '/png')

 

今回も、PyCharmの緑三角マーク(実行ボタン)などから、プログラムを実行します。

LINE Notify python pycharm

 

LINE Notify application talk

 


 

今回のメモは以上となります。

LINEは、国内で多く利用されているサービスですので、

簡単にメッセージを送信できるようになるLINE Notifyは重宝します。

特に、個人利用レベルであれば、LINE Message APIよりもお手軽で良いと思います。

Python以外でも実装できますので、ぜひお試し頂ければと思います。

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 164

LINE Notify トーク テキスト 画像 送信 Python」への3件のフィードバック

  1. LINE NOTIFY を利用して、メッセージ(テキスト)、画像を送ることができました。
    送りたいものが音声メッセージ(.m4aファイル)の場合は、どのように記述すればよいのでしょうか。pythonによるコーディング例を教えていただけませんか。

    1. コメント頂きありがとうございます。
      確認したところ、LINE NOTIFYは音声メッセージ(.m4aファイル)に対応していないようです。

      公式ドキュメントを見る限り、画像ファイル(png, jpeg)以外サポートされていなさそうなので、
      LINE NOTIFYでの対応は難しいと思います。
      https://notify-bot.line.me/doc/ja/
      LINE NOTIFY Document

      さっと見た限り、LINE APIであれば.m4aも対応していそうです。
      https://developers.line.biz/ja/reference/messaging-api/#audio-message
      ただ、申し訳ございませんが、LINE APIは触った事がなく、すぐにサンプルなどご提示出来そうにないです。

      1. LINE NOTIFYが簡単そうだったので始めたのですが、LINE APIも知る必要がありそうですね。両者の関係すら知らないロートルですので、もう少し勉強してみます。取っ掛かりを教えていただいて感謝しています。
        お忙しいところ、大変ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る