質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

13644閲覧

LINE Messaging APIで自分と友達になっているアカウントに対してメッセージを一括送信したい

rnnka

総合スコア15

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/01/16 06:50

編集2019/01/16 07:11

PHPを使用して、メッセージを送信するアカウント(以下発信側)と友達になっているアカウントに対してAPIを通じてメッセージを送りたいと考えております。
Botとしての運用ではなく、全体に対してメッセージを一方的に送る(アカウントからメッセージを受け取っても返信はしないという仕様です。)
既に、1人を対象にして送る部分は完成しており、動作も確認済みです。

実際のコード

PHP

1// POSTデータを設定してJSONにエンコード 2$post = [ 3 'to' => 'LINE developerで確認したユーザーID', 4 'messages' => [ 5 [ 6 'type' => 'text', 7 'text' => $_POST['message'], //フォームを用意して、そのフォームで入力されたものを送信する予定です 8 ], 9 ], 10]; 11$post = json_encode($post); 12 13// HTTPリクエストを設定 14$ch = curl_init('https://api.line.me/v2/bot/message/push'); 15$options = [ 16 CURLOPT_CUSTOMREQUEST => 'POST', 17 CURLOPT_HTTPHEADER => $headers, 18 CURLOPT_RETURNTRANSFER => true, 19 CURLOPT_BINARYTRANSFER => true, 20 CURLOPT_HEADER => true, 21 CURLOPT_POSTFIELDS => $post, 22]; 23curl_setopt_array($ch, $options); 24 25// 実行 26$result = curl_exec($ch); 27 28// エラーチェック 29$errno = curl_errno($ch); 30if ($errno) { 31 return; 32}

質問したい内容

LINE Messaging APIのリファレンスを読みましたが、複数のアカウントに対してメッセージを送ることは可能であることは確認しました。
その上で、

  • 友達かどうかはAPIを使用して取得→該当したアカウントにメッセージを送るという手法が良いのでしょうか。
  • 指定したWebhook URLから、そのログから友達であるアカウントを記録、もしくは取得するという手法が良いのでしょうか。

上記2つのやり口があると思うのですが、どちらにせよ方法がうまく思いつかないのが現状です。
もし過去に行ったことがあれば、ご教示いただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下の流れで、実現できると思います。

  1. 友だちになった or メッセージが送信されたタイミングでwebhook URLに対して、ユーザIDを含んだデータが送信されるので保存しておく
  2. 1を multicast API で指定することで、一括で複数ユーザに送信する

注意点としては、multicast API で1回に送れる人数は150人が最大なので
対象がそれ以上の場合は複数回実行する必要があります。

参考:
https://developers.line.biz/ja/reference/messaging-api/#anchor-d2c981e5b9ab6aaca253183f323798541a101b5f
https://developers.line.biz/ja/reference/messaging-api/#anchor-fa99cafa93ac4294d83cd7b89b60c822c1dafa9b

投稿2019/01/16 08:40

shoya.shiraki

総合スコア430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rnnka

2019/01/17 01:30

ご回答と参考URL、有り難うございます。 リファレンスを読みましたら、友達情報取得のAPIを使用するより、Webhook URL宛に送信されたデータをこちら側で保存する方が一番現実的ですね、、、 Webhookに送信されたデータをキャッチするところまでできましたので、あとはこちら側で上限数を確認しながら送信してみます。 再度になりますが、ご教示感謝致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問