大家好~
這幾天應該對 line-bot-sdk-php 有了一些初淺的認識啦~
不過在 line-bot-sdk-php 的 README.md 上有提到的 line-bot-sdk-tiny 一直都沒介紹到,
今天就來看一下 line-bot-sdk-tiny 吧!
下面這段話是 line-bot-sdk-php 在 README.md 上的一段簡介:
A very simple SDK (subset) for the LINE Messaging API for PHP. line-bot-sdk-tiny provides a simple interface and functions which makes it a good way to learn how to use the LINE Messaging API.
相對於原本 line-bot-sdk-php 實作的那些功能,line-bot-sdk-tiny 真的是 simple 非常多!
今天用 line-bot-sdk-tiny 實作 Flex Message,
順便看一下 line-bot-sdk-tiny。
原始碼的部分就不太會貼上來啦,
這邊附上 GitHub 的連結,
如果已經下載過了,
也可以從以下路徑中找到檔案喔~vendor/linecorp/line-bot-sdk/line-bot-sdk-tiny/LINEBotTiny.php
那就先從 parseEvents() 開始吧!
parseEvents() 會幫我們對 Request 做哪些檢查呢?
主要是在設定回傳訊息時 Request 的 HTTP header 與 API URL ,
Channel access token 也會被放入 header 的 Authorization 內。
也會幫我們把要回傳訊息的內容轉成 JSON 喔~

LINE Messaging API 簽名的產生方式是用 sha256 與 Channel secret 對 Request body 進行加密後,
輸出二進位的結果,
再用 base64 做編碼。
$linebotTiny = new LINEBotTiny(
    env('LINE_BOT_CHANNEL_ACCESS_TOKEN'),
    env('LINE_BOT_CHANNEL_SECRET')
);
$event = $linebotTiny->parseEvents();
$replyToken = $event[0]['replyToken'];
$flexContent = 'Flex message content...';
$linebotTiny->replyMessage([
    'replyToken' => $replyToken,
    'messages' => [
        [
            'type' => 'flex',
            'altText' => 'this is a flex message',
            'contents' => $flexMessageContent
        ]
    ]
]);
return response('HTTP_OK', Response::HTTP_OK);
範例中的變數 $flexMessageContent 就是 PHP Array 格式的 Flex Message,
但因為內容過長,
就不放上來佔版面啦,
先用一段字串示意一下。

會發這篇主要是因為昨天使用 Flex Message 時,
感覺到 line-bot-sdk-php 的不便之處...
在 FLEX MESSAGE SIMULATOR  上設計好模板後,
還要用符合 FlexMessageBuilder 要求的方式將剛剛設計好模板實作出來,
對我而言使用起來不是那麼的便利...
所以想說分享一下 line-bot-sdk-tiny。
由於 line-bot-sdk-tiny 原始碼不多,
但 LINE Messaging API 的基本功能他都具有,
所以從 line-bot-sdk-tiny 開始認識 LINE Messaging API,
也是種不錯的方式吧~
大家明天見啦~
若文章有任何問題,
還請大家不吝賜教!
想請教一下你是如何在laravel裡引入line-bot-sdk-tiny的呢?
我試著到composer.lock把 line-bot-sdk-tiny 加到autoload (如圖)
再到controller引入(use LINEBotTiny) 卻還是顯示Class 'LINEBotTiny' not found