LINE APIを使ってLINEグループにプッシュ投稿を行う
Botにリプライを行わせる事例は沢山あったのですが、プッシュ通知の事例は少なかったので自分用備忘録。まずComposerでLINE BotのSDKを導入します。
$ composer require linecorp/line-bot-sdk
LINE DevelopersでMessaging APIの利用登録を行います。その際にチャネルのアクセストークンとシークレットトークンをメモしておきましょう。次に参加しているLINEグループのIDが取得できるようにコールバック用のスクリプトを準備します。
<?php
$accessToken = 'チャネルのアクセストークン';
//ユーザーからのメッセージ取得
$json_string = file_get_contents('php://input');
$json_object = json_decode($json_string,true);
$json = fopen('sample.json', 'w+b');
fwrite($json, json_encode($json_object));
fclose($json);
LINE DevelopersのBotの設定でコールバック先としてこのスクリプトを実行するようにします。これで特定のLINEグループに招待されたときに、groupIdをJSONで取得することができたと思います。
次にこのグループIDを使ってプッシュ投稿を行うスクリプトを作成します。
$group_id = "LINEグループのID";
define("LINE_MESSAGING_API_CHANNEL_SECRET", "チャネルのシークレットトークン");
define("LINE_MESSAGING_API_CHANNEL_TOKEN", "チャネルのアクセストークン");
$bot = new \LINE\LINEBot(
new \LINE\LINEBot\HTTPClient\CurlHTTPClient(LINE_MESSAGING_API_CHANNEL_TOKEN),
['channelSecret' => LINE_MESSAGING_API_CHANNEL_SECRET]
);
$text = "テストメッセージ";
$textMessageBuilder = new \LINE\LINEBot\MessageBuilder\TextMessageBuilder($text);
$bot->pushMessage($group_id, $textMessageBuilder);
これでLINEグループへプッシュ投稿ができるかと思います。設定値は適宜各自の環境に置き換えてください。