LoginSignup
2
3

More than 3 years have passed since last update.

pythonを使ってLINEで一斉配信をする

Posted at

はじめに

LINEでシステムから情報を一斉配信したので、その時の手順を残しておきます。

LINEはLINE@とLINE公式アカウントが別々で別れてましたが統合されたようです。
アカウントは無料で作成することができ、登録にはメールアドレスのみで登録できます。
LINEにはAPIがいくつかありますが、一斉配信にはMessaging APIを使用します。
一つのチャンネルで1000通までは無料で配信できるので、十分にテストできると思います。

チャネル作成

まずはこちらのURLからビジネスアカウント作成をクリックして、メールアドレスで作成をクリックします。
https://account.line.biz/login

次に、作成したビジネスアカウントでログインをしてプロバイダとチャネルを作成してください。
https://developers.line.biz/ja/docs/messaging-api/getting-started/#using-oa-manager

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

チャネルの個別設定画面の上のタブの「Messaging API設定」を選択します。

スクリーンショット 2020-11-15 14.36.40.png

その画面の一番下の「チャネルアクセストークン(長期)の発行ボタンをクリックしてトークンを発行してください。

スクリーンショット 2020-11-15 14.38.30.png

プログラム実行

下のプログラムを実行すると配信できます。
先ほど発行したアクセストークンを変数にセットしてご使用ください。

test_delivery.py
# -*- coding:utf-8 -*-
import requests
import urllib.request, urllib.error
import json

url = 'https://api.line.me/v2/bot/message/broadcast'
channel_access_token = '作成したchannel_access_token'
# 送信用のデータ
# messageの中にtype,textの配列を追加すれば一度に複数のメッセージを送信できます。(最大件数5)
data = {
    'messages' : [{
        'type':'text',
        'text':'配信したいテキスト'
    }]
}
jsonstr = json.dumps(data).encode('ascii')
request = urllib.request.Request(url, data=jsonstr)
request.add_header('Content-Type', 'application/json')
request.add_header('Authorization', 'Bearer ' + channel_access_token)
request.get_method = lambda: 'POST'
# 送信実行(レスポンスが200なら送信成功)
response = urllib.request.urlopen(request)

詳細な使用方法は公式がわかりやすいです。
https://developers.line.biz/ja/reference/messaging-api/#send-broadcast-message

最後に

初めてLINE MessagingAPIを使用しましたが、わかりやすくて非常に使用しやすいものでした。
webhookやOAuthなんかもあるので、そちらも時間ができたら試します。
なにかこちらの記事で間違い等あればご指摘ください。

2
3
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
2
3