スタンプの送信
スタンプの送信には、StickerMessageBuilderを使います。
index.phpの最後?>より前に以下のコードを追記してください。
function replyStickerMessage($bot, $replyToken, $packageId, $stickerId) {
$response = $bot->replyMessage($replyToken, new \LINE\LINEBot\MessageBuilder\StickerMessageBuilder($packageId, $stickerId));
if (!$response->isSucceeded()) {
error_log('Failed!'. $response->getHTTPStatus . ' ' . $response->getRawBody());
}
}
?>
スタンプの指定にはパッケージIDとステッカーIDが必要となります。送ることができるスタンプとIDは以下のリンクから確認できます。
なお、有料のスタンプなど上記以外のスタンプを送信することは、もしユーザーがそのスタンプを所持していたとしてもできませんので、ご注意ください。
動作確認のため、以下のようにコードを変更します。
replyLocationMessage($bot, $event->getReplyToken(), "LINE株式会社", "東京都渋谷区渋谷2-21-1 ヒカリエ27階", 35.659025, 139.703473);
replyStickerMessage($bot, $event->getReplyToken(), 1, 1);
function replyTextMessage($bot, $replyToken, $text) {
デプロイして、適当にBotに呼びかけてみましょう。BotからIDを指定したスタンプが送られます。
複数のメッセージを組み合わせて送信する
MultiMessageBuilderをreplyMessage関数に渡すことで、最大5個のメッセージを組み合わせて送信することができます。組み合わせたものを1通としてカウントするので、ReplyTokenは1つしか使いません。また、種類が異なるメッセージを同時に送ることも可能です。
index.phpの最後?>より前に以下のコードを追記してください。
function replyMultiMessage($bot, $replyToken, ...$msgs) {
$builder = new \LINE\LINEBot\MessageBuilder\MultiMessageBuilder();
foreach($msgs as $value) {
$builder->add($value);
}
$response = $bot->replyMessage($replyToken, $builder);
if (!$response->isSucceeded()) {
error_log('Failed!'. $response->getHTTPStatus . ' ' . $response->getRawBody());
}
}
?>
msgsには引数として渡されたメッセージが配列(可変長)で格納されます。
次に動作確認のため、以下のようにコードを変更します。
replyStickerMessage($bot, $event->getReplyToken(), 1, 1);
replyMultiMessage($bot, $event->getReplyToken(),
new \LINE\LINEBot\MessageBuilder\TextMessageBuilder("TextMessage"),
new \LINE\LINEBot\MessageBuilder\ImageMessageBuilder("https://" . $_SERVER["HTTP_HOST"] . "/imgs/original.jpg", "https://" . $_SERVER["HTTP_HOST"] . "/imgs/preview.jpg"),
new \LINE\LINEBot\MessageBuilder\LocationMessageBuilder("LINE", "東京都渋谷区渋谷2-21-1 ヒカリエ27階", 35.659025, 139.703473),
new \LINE\LINEBot\MessageBuilder\StickerMessageBuilder(1, 1)
);
function replyTextMessage($bot, $replyToken, $text) {
これまでに送信したメッセージを一括送信するように変更してみました。デプロイして呼びかけると、一気に4種類のメッセージがBotから送信されます。
