【PHP】LINE Messaging API SDKでボタンを作る

この記事について

環境PHP + LINE Messaging API SDK
目的ボットからYES/NOボタンや画像付きボタンを送る
結果TemplateActionBuilder と TemplateBuilder の組み合わせで送れた

つまずきポイント要約

  • ButtonTemplateBuilder のテキスト(第2引数)は省略不可
  • ボタン画像の最大横幅は1024px

YES/NOボタン

$yes_confirm = new \LINE\LINEBot\TemplateActionBuilder\PostbackTemplateActionBuilder('はい', 'confirm=1');
$no_confirm = new \LINE\LINEBot\TemplateActionBuilder\PostbackTemplateActionBuilder('いいえ', 'confirm=0');
$actions = [$yes_confirm, $no_confirm];
$confirm = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ConfirmTemplateBuilder('メッセージ', $actions);
$confirm_message = new \LINE\LINEBot\MessageBuilder\TemplateMessageBuilder('confirm', $confirm);
$multiMessageBuilder->add($confirm_message);
$bot->replyMessage($reply_token, $multiMessageBuilder); //送信

画像付きボタンテンプレート

$buttonURL = new \LINE\LINEBot\TemplateActionBuilder\UriTemplateActionBuilder("ここから登録", "http://yahoo.co.jp");
$no_confirm = new \LINE\LINEBot\TemplateActionBuilder\PostbackTemplateActionBuilder('いいえ', 'confirm=0');
//$buttons = [$buttonURL, $no_confirm];
$buttons = [$buttonURL];
//$confirm = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ConfirmTemplateBuilder('メッセージ', $actions);
//$confirm = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ButtonTemplateBuilder(null, 'タイトル', null, $buttons);
//最大横幅サイズ:1024px
$imageUrl = "https://example/img/img/PNG";
$confirm = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ButtonTemplateBuilder(null, 'テキストは省略不可', $imageUrl, $buttons); //第1引数はタイトル(null可)
$url_message = new \LINE\LINEBot\MessageBuilder\TemplateMessageBuilder('confirm', $confirm);
$multiMessageBuilder->add($url_message);
$bot->replyMessage($reply_token, $multiMessageBuilder); //送信

メッセージやボタンを連投する場合

//送りたいすべてのメッセージを追加して送信
$multiMessageBuilder->add($message1);
$multiMessageBuilder->add($message2);
$bot->replyMessage($reply_token, $multiMessageBuilder);

関連:複数メッセージを返す方法の基本はこちら

タイトルとURLをコピーしました