【LINE BOT】PythonでLINE BOTを作成して、LINEにメッセージを送信する方法

概要

PythonでLINE BOTを作成したので、作成方法についてまとめた。
LINEの提供するMessaging APIを使用して、友だち登録したLINE BOTよりメッセージを受信するまでの流れを紹介する。

 

LINE BOTの全体イメージ

LINE BOTからメッセージが送られるイメージ。
Pythonからメッセージ内容をMessagin APIに渡すことで、LINEサービス側からLINEアプリへメッセージをとばすことができる。

LINEアプリへは作成したBOTからメッセージが送られる。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_全体像
▲LINE BOTプログラムの全体像

 

準備

LINE DEVELOPERSにログイン

LINE DEVELOPERSにアクセスして自身のLINEアカウントでログインする。

LINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロ…

 

プロバイダーの作成

LINE BOTを配信するプロバイダー(提供者)を作成する。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_プロバイダー作成
▲プロバイダーの作成

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_プロバイダー作成完了
▲任意のプロバイダー(提供者)名を作成

 

チャネル(機能)の設定

作成したプロバイダは何のチャネル(機能)を提供するのかを指定する。
LINE BOTを作成する場合、Messaging APIを使用する。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_チャネル作成
▲Messaging APIを指定する

 

作成したチャネルがLINE BOTになり、メッセージが送られるようになる。
チャネルの必要事項を設定する。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_チャネル設定1
◆所在地は日本でOK

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_チャネル設定2
▲上記がLINEのBOT名になる

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_チャネル設定3
▲チャネルの説明など設定する

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_チャネル設定4
▲同意項目にチェックして作成完了させる

 

LINE BOTを友だち登録

作成したLINE BOTを自身のLINEで友だち登録する。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_友だち登録
上記のIDまたはQRコードにてLINEの友だち登録を完了させる

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_友だち登録完了
▲友だち登録すると、初回メッセージが表示される

 

BOTプログラム作成

Jupyter Labを開き、PythonでLINE BOTのプログラムを作成する。

 

Jupyter Labの起動

Jupyter Labの導入方法は以下を参照。

あわせて読みたい

概要 Pythonの環境構築を行ったので、その方法についてまとめた。どの言語でもプログラミングをする場合、必要な言語ソフトをインストールしたり専用のエディタを用意する必要がある。 そのため、プログラミングをはじめるために[…]

 

当記事ではUbuntu側で仮想環境を作成してJupyter Labを起動する。
任意のディレクトリ内で以下のコマンドを実行して仮想環境を有効にする。

ターミナル


python3 -m venv myenv
source myenv/bin/activate

以下のコマンドを実行してJupyter Labを起動する。

ターミナル


jupyter lab

ターミナルに表示されたURLにアクセスしてブラウザ上でJupyter Labを起動する。

メッセージ送信に必要な情報を作成

LINEメッセージをBOTから送信する際に必要な情報をjsonファイルに保持させる。
※直接コーディングしても問題はないが、今回は設定情報を別ファイルで管理する

必要な設定情報は「チャネルアクセストークン」と「ユーザーID」になる。

チャネルアクセストークン:作成したチャネルに対してメッセージ内容を伝えるための鍵というイメージ
ユーザーID:誰に送るのかという情報(今回なら自分)

 

設定ファイル

jsonにチャネルアクセストークンとユーザーIDを設定する。

settings.json


{
    "CH_TOKEN": "XXXXX",
    "USER_ID": "XXXXX"
}

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_json作成
▲作成イメージ

 

チャネルアクセストークン

チャネルアクセストークンは以下から発行して取得する。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_チャネルアクセストークン発行
▲トークンをコピーする

 

ユーザーID

ユーザーIDは以下から取得する。

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_USERID取得
▲ユーザーIDのコピー

 

ライブラリインストール

LINE Messaging APIを使用するために、必要なline-bot-sdkをインストールする。
以下のコマンドをJupyter Labのセルに記述し、Shift + Enter で実行する。

Jupyter Lab


!pip install line-bot-sdk

実行するとLINE Messaging APIの資材がダウンロードされる。

 

メッセージ送信処理の作成

jsonから必要な設定値を取得して、メッセージを送信する処理を作成する。

設定値の読み込み

jsonからメッセージBOTを作成して送信する際の必要な情報を参照する。

あわせて読みたい

概要 jsonモジュールを使用してデータ変換やファイル読み書きを行う方法についてまとめた。前提としてファイルオブジェクトの操作が必要になる。

【json】Pythonでファイル操作:jsonモジュールの基本的な使用方法

Jupyter Lab


import json

with open("settings.json", encoding="utf-8") as f:
    res = json.load(f)

# チャネルアクセストークン
CH_TOKEN = res["CH_TOKEN"]
# ユーザーID
USER_ID = res["USER_ID"]

 

メッセージの送信

チャネルアクセストークン、ユーザーIDを使用して自身のLINEにBOTからメッセージを送る。
以下を実行する度にLINE BOTを通してメッセージ「こんにちは」が送信される。

Jupyter Lab


from linebot import LineBotApi
from linebot.models import TextSendMessage

line_bot_api = LineBotApi(CH_TOKEN)

text_msg = "こんにちは"
messages = TextSendMessage(text=text_msg)
line_bot_api.push_message(USER_ID, messages=messages)

※現在line-bot-sdkのバージョンが上がっており、上記のメッセージ送信処理だと送信はできるが非推奨というメッセージが表示される状態

 

【PythonでLINE BOTを作成して、LINEにメッセージを送信する方法】_メッセージ送信
▲友だち登録したLINE BOTからメッセージがきた

 

 

スポンサーリンク