PythonでLINE Notify経由でグループにメッセージを送る

今回は前回の記事で説明しました
LINEの友達に送れるようにするため
LINE NotifyというLINEのサービスを
経由して友達が参加したグループに
送る方法をお伝えします。

LINE・LINE Notifyの準備

LINEの配信グループを作成する

LINEで、自分を含めて友達に
参加してもらうグループを
作成します。

LINE Notifyのアクセストークンを入手する

まずLINE Notifyを友だちに追加します。
下記QRコードが出てきますので
スマートフォンで読ませて友達に追加します。

追加されると以下のお知らせが届きます。

次に下記の『ログイン』からログインします。

LINEアカウントのメールアドレスと
パスワードでログインします。

『マイページ』を選んでください。

『トークンを発行する』を選んでください。
このトークンがアクセスの許可を得るために
プログラムにセットする情報になります。

トークン名を記入し
参加しているトークルーム(グループ)
が表示されるので送信先のグループ
を選択します。
ここでは、グループは未作成なので
自分を選びます。

トークンが表示されるので
『コピー』を押して
一度どこか
安全なファイルにペースト
してください。

以下の画面に移動して
トークンの発行は完了です。

LINE Notifyを配信グループに招待する

LINE Notifyのアクセストークンを発行すると
以下のようなメッセージが届きます。
メッセージのとおりに、グループにLINE Notifyを
招待します。
下記メッセージでは、グループ名が
[一斉配信]になっています。

プログラムについて

以下に今回のプログラムを掲載します。
このあとの動画中で説明していますが
プログラムの概要は前回とほぼ同じです。

# coding:utf-8

# Webアプリへのリクエストをするモジュールを"ureq"としてインポート
import urllib.request as ureq

# LINE Notifyのアクセストークンの指定を"parm"としてインポート
import line_notify_token as parm

# 指示を出す先のLINE Notify APIのURL
url = 'https://notify-api.line.me/api/notify'

# 送信用のデータ
data = {
    'message' : 'こんちわ!'
}


# 送信用のデータをURLエンコード(URLで表せる文字列に変換)してutf-8の文字コードに変換
dataenc = uparse.urlencode(data).encode('utf-8')

# LINE Notify APIのURLとデータをセットした指示(リクエスト)の手紙を作成
request = ureq.Request(url, data=dataenc)

# 手紙に指示内容がx-www-form(URLエンコード)形式である旨を追記
request.add_header('Content-Type', 'application/x-www-form-urlencoded')

# アクセストークンで許可を得る旨を追記
request.add_header('Authorization', 'Bearer ' + parm.channel_access_token)

# Webアプリに指示をポストするため'POST'を返すだけの無名の関数(ラムダ関数)を指定
request.get_method = lambda: 'POST'

# 作った手紙を送り(リクエストを元にURLを開き)、返信をresponseに受け取る
response = ureq.urlopen(request)

# 返信内容を読み込む
ret = response.read()

print('Response:', ret)


LINE Notify APIのマニュアルはここにあります。

以下に抜粋を示します。
今回使うPOST送信の内容は以下のとおりで
JSONではなく、x-www-form-urlencodedです。

パラメタには以下のとおり
いくつか指定できますが
今回はmessageのみを指定しています。

動画で前回との差分をより詳しく解説します。

最後に

いかがでしたでしょうか?
PythonからLINEにメッセージ
を送信する方法について
3回にわたって解説しました

プログラムよりも
LINEやLINE Notiofyへの手続き
のほうが面倒に見えると思います。

プログラム自体は
LINEやLINE Notfyの作法に従って
作るだけで
プログラムらしい条件分岐やループ
などはなくシンプルなほうでした。

もちろん、これは
1通のメッセージを
単に送信するだけ
だからです。

Kindleから情報をとってくる
プログラムと組み合わせると
少しむずかしくなりますが

Kindleの人気本の情報を
定期的にLINEに配信できるように
なりますので

ぜひともチャレンジ
してみてください❗️

ではまた次回をお楽しみに❗️

タイトルとURLをコピーしました