大家好~
今天来试着传送不同类型讯息回覆使用者吧!
以下范例为以如何使用不同的 MessageBuilder 为主,
若对签名验证与一些例外处理有兴趣,
欢迎参考 Day13 喔~
范例1:
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\TextMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$reply = $request['events'][0]['message']['text'];
$text = new TextMessageBuilder($reply);
$bot->replyMessage($replyToken, $text);
}
范例2:
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\TextMessageBuilder;
use LINE\LINEBot\MessageBuilder\Text\EmojiBuilder;
use LINE\LINEBot\MessageBuilder\Text\EmojiTextBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$reply = $request['events'][0]['message']['text'];
$emoji1 = new EmojiBuilder(0, '5ac1de17040ab15980c9b438', '095');
$emoji2 = new EmojiBuilder(1, '5ac1de17040ab15980c9b438', '095');
$emojiText = new EmojiTextBuilder('$$' . $reply, $emoji1, $emoji2);
$text = new TextMessageBuilder($emojiText);
$bot->replyMessage($replyToken, $text);
}
一般文字回覆的使用方式十分容易,
只需将要回覆的 string 放入 TextMessageBuilder 实例中即可。
若想要用 Line Emoji 回覆,
则需要实例化较多个 Class,
还需要知道一些小重点:
$
作为占位符。$
不匹配,会回传 HTTP 400 Bad request。$emojiText = new EmojiTextBuilder('$$' . $reply, $emoji1, $emoji2)
;use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\StickerMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$sticker = new StickerMessageBuilder('11537', '52002771');
$bot->replyMessage($replyToken, $sticker);
}
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\ImageMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$image = new ImageMessageBuilder(
'https://cdn-icons-png.flaticon.com/512/3522/3522266.png',
'https://cdn-icons-png.flaticon.com/512/3522/3522248.png'
);
$bot->replyMessage($replyToken, $image);
}
上面范例刻意用两张不一样的图片让测试结果更好分辨:
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\VideoMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$video = new VideoMessageBuilder(
'https://img-9gag-fun.9cache.com/photo/aEpr2ON_460svvp9.mp4',
'https://img-9gag-fun.9cache.com/photo/abVPMOL_460swp.png'
);
$bot->replyMessage($replyToken, $video);
}
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\AudioMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$audio = new AudioMessageBuilder(
'https://example.com/original.m4a',
'75000'
);
$bot->replyMessage($replyToken, $audio);
}
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\LocationMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$location = new LocationMessageBuilder(
'好想工作室',
'台南市东区北门路二段16号 L2A',
'22.999739302983308',
'120.21290532894172'
);
$bot->replyMessage($replyToken, $location);
}
Title 与 Address 输入的值不会影响地图图钉的位置,
地图图钉的位置是以经纬度为主。
另外 Location message 在电脑与手机上呈现的结果会不一样喔~
use LINE\LINEBot\HTTPClient\CurlHTTPClient;
use LINE\LINEBot;
use LINE\LINEBot\MessageBuilder\MultiMessageBuilder;
use LINE\LINEBot\MessageBuilder\VideoMessageBuilder;
use LINE\LINEBot\MessageBuilder\LocationMessageBuilder;
public function reply(Request $request)
{
$httpClient = new CurlHTTPClient(env('LINE_BOT_CHANNEL_ACCESS_TOKEN'));
$bot = new LINEBot($httpClient, ['channelSecret' => env('LINE_BOT_CHANNEL_SECRET')]);
$replyToken = $request['events'][0]['replyToken'];
$multiMessageBuilder = new MultiMessageBuilder();
$video = new VideoMessageBuilder(
'https://img-9gag-fun.9cache.com/photo/aEpr2ON_460svvp9.mp4',
'https://img-9gag-fun.9cache.com/photo/abVPMOL_460swp.png'
);
$multiMessageBuilder->add($video);
$location = new LocationMessageBuilder(
'好想工作室',
'台南市东区北门路二段16号 L2A',
'22.999739302983308',
'120.21290532894172'
);
$multiMessageBuilder->add($location);
$response = $bot->replyMessage($replyToken, $multiMessageBuilder);
}
使用 MultiMessageBuilder 就可以不只回传一笔讯息喔(最多五笔)。
今天就先这样啦~
Imagemap message、Template message、Flex Message 就明天再来认识吧!
大家明天见!
若文章有任何问题,
还请大家不吝赐教!
>>: Day-15 : image_tag 咩啊抓用置入图片?
Nested Interrupts Cortex-M3 和 NVIC 在硬体架构上支援(Nested...
前言: 上一篇文章中,我们最後完成了一个简单的网页留言版,主要是使用php的GET方法来进行资料的...
WebRTC 是什麽? WebRTC(Web Real-Time Communication),即指...
设定环境 首先我们需要读取libraries跟dataset,我们将会使用一个dataset是包含在...
今天是第二天介绍hash! 总结一下hash,其实有两个很重要的重点: 不能让任何人从hash导出...