【LINE Messaging APIの使い方解説(その3)】チャンネル登録者全員に一斉にメッセージ配信

こんにちは、くのへです!
LINEのMessaging APIを使おう!というテーマで記事を書いて行きます。
前回の記事ではLINEのMessaging APIを使ってメッセージを送信しました!

でもこの方法だと、実は自分にしかメッセージが飛んできません。
自分以外のチャンネル登録者には全くメッセージが飛んでいないのです。

これは、前回の記事は「プッシュメッセージ」という仕組みを使っているため、所定のユーザIDの人にだけ送られる仕組みだったためです。
今回の記事はチャンネルの友達登録者全員に一斉にメッセージを送る「ブロードキャストメッセージ」を解説します。

なお、次回の記事では「メッセージオブジェクト」について解説したいと思います。メッセージオブジェクトを習得すればテキストだけではなく絵文字やLINEアイコンを送ることが出来ますよ。

LINEにブロードキャストメッセージを送る(GoogleAppsScript)

LINEにブロードキャストメッセージを送るプログラム(GoogleAppsScript)は、ずばりこちらです。
「ACCESS_TOKEN」の値は、前回の記事のアクセストークンを書いて下さい(クオーテーションの間のXXXXXの部分を書き換え。クオーテーションは消さないでね)。

function BroadCastmessageToLine() {
  const ACCESS_TOKEN = 'XXXXX';

  var url = 'https://api.line.me/v2/bot/message/broadcast';

  var headers = {
    'Content-Type': 'application/json; charset=UTF-8',
    'Authorization': 'Bearer ' + ACCESS_TOKEN
  };

  var message = "Hello BroadCastMessage";

  var data = {
    'messages': [
      {
        'type': 'text',
        'text': message
      }
    ]
  };


  var options = {
    'method': 'post',
    'headers': headers,
    'payload': JSON.stringify(data)
  };

  UrlFetchApp.fetch(url, options);

}

さて、これを実行してみましょう。
実行すると、、、「Hello BroadCastMessage」というメッセージが届くはずです!!

キターー!!!
コードの中央の「Hello BroadCastMessage」を書き換えると、メッセージが変わります。

LINEにメッセージを送る(VBA)

なお、ExcelVBAで同じことをやってみると、次のコードになります。
これもACCESS_TOKENの値は、自分のものを使ってください。

Sub BroadCastmessageToLine()

    ' LINEのアクセストークンとユーザーIDを設定
    Dim ACCESS_TOKEN As String
    Dim USER_ID As String
    ACCESS_TOKEN = "XXXXX"
    
    ' URLの設定
    Dim url As String
    url = "https://api.line.me/v2/bot/message/broadcast"
    
    ' メッセージの内容
    Dim message As String
    message = "Hello Line from VBA"
    
    ' JSONデータを作成
    Dim data As String
    data = _
    "{" & vbCrLf & _
    """messages"": [" & vbCrLf & _
        "{" & vbCrLf & _
          """type"": ""text""," & vbCrLf & _
          """text"": """ & message & """" & vbCrLf & _
        "}" & vbCrLf & _
      "]" & vbCrLf & _
    "}"


    Dim xmlhttp As Object
    ' HTTPリクエストの設定
    Set xmlhttp = CreateObject("MSXML2.XMLHTTP.6.0")
    With xmlhttp
        .Open "POST", url, False
        .setRequestHeader "Content-Type", "application/json; charset=UTF-8"
        .setRequestHeader "Authorization", "Bearer " & ACCESS_TOKEN
        .send data
    End With

    ' レスポンスの確認
    If xmlhttp.Status = 200 Then
        MsgBox "メッセージが送信されました。"
    Else
        MsgBox "送信エラー: " & xmlhttp.Status & " - " & xmlhttp.responseText
    End If

    Set xmlhttp = Nothing
End Sub

これで実行すると、、、

ちゃんとLINEにキターーー!!!

LINEにメッセージを送る(Python)

Pythonだとこうなります。(これもACCESS_TOKENとUSER_IDの値は、前項で取得した値をコピペしましょう。)

import requests
import json

def BroadCastmessageToLine():
    ACCESS_TOKEN = "XXXXX"
    
    url = "https://api.line.me/v2/bot/message/broadcast"
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {ACCESS_TOKEN}"
    }
    
    message = "Hello Line from Python"
    
    data = {
        "messages": [
            {
                "type": "text",
                "text": message
            }
        ]
    }
    
    response = requests.post(url, headers=headers, data=json.dumps(data))
    
    if response.status_code == 200:
        print("メッセージが送信されました。")
    else:
        print(f"送信エラー: {response.status_code} - {response.text}")

# 関数を実行
BroadCastmessageToLine()

これを実行すると、、、

ヨシ!!(現場ネコ)

Postリクエストでブロードキャストメッセージを送ることが出来ました。

コードの解説

ブロードキャストメッセージは、チャンネル登録者全員に一気にメッセージを送る方法です。アクセストークンさえあればそのチャンネルを特定できるので、アクセストークンのみをしています。

前回の記事のプッシュメッセージとの違いを見てみましょう。

エンドポイント(URL)が違いますが、他はユーザIDに関する行が無いだけで、他は全て同一ですね!

そう、ブロードキャストメッセージは殆どプッシュメッセージと同じ仕組みで動きます。
ユーザIDを指定しなくてよいので、むしろ簡単!楽勝!第3部完!!!

VBAもPythonも同様です。前回記事のものとエンドポイント(URL)とユーザIDの有無だけが違います。

これでチャンネル登録者全員にメッセージを送る仕組みの出来上がりです!

これでLINE Messaging API、完璧だ!!!
お疲れ様でした。

おわりに

本当にお疲れ様でした。前回の記事を試した方には簡単だったんではないでしょうか?
ブロードキャストメッセージを使うと、チャンネル登録者全員に送信できます。

しかし、間違ったメッセージを送ってしまう事もあり得るため、最初はプッシュメッセージで試してから送った方が良いかなと思います。

コードも簡単ですし、URLを変えるだけでブロードキャストメッセージに出来るので、まずはプッシュメッセージで試してからブロードキャストメッセージに変更しましょう。

関連記事

【LINE Messaging APIの使い方解説(その1)】LINE Developerコンソールへのアクセスと公式アカウントの作成方法

【LINE Messaging APIの使い方解説(その2)】LINE APIでメッセージ送信(GAS,VBA,Pythonサンプルコードあり)

【LINE Messaging APIの使い方解説(その4)】メッセージオブジェクトの使い方

【LINE Messaging APIの使い方解説(その5)】プロ仕様のメッセージ(テンプレートメッセージ)の使い方

【LINE Messaging APIの使い方解説(その6)】チャンネル登録者数などの情報を取得しよう

【LINE Messaging APIの使い方解説(その7)】LINE公式アカウントの使い方 その①

【LINE Messaging APIの使い方解説(その8)】LINE公式アカウントの使い方 その②

【LINE Messaging APIの使い方解説(その9)】LINE公式アカウントの使い方 その③

【LINE Messaging APIの使い方解説(その10)】Webhookの解説(応答システム)

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
Contents