PHPackages                             mesak/laravel-linebot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. mesak/laravel-linebot

ActiveLibrary[API Development](/categories/api)

mesak/laravel-linebot
=====================

build a Laravel api response package

v0.0.5(3y ago)122MITPHPPHP ^8.0

Since Jan 29Pushed 3y ago1 watchersCompare

[ Source](https://github.com/mesak/laravel-linebot)[ Packagist](https://packagist.org/packages/mesak/laravel-linebot)[ RSS](/packages/mesak-laravel-linebot/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (1)Versions (6)Used By (0)

Laravel LINEBOT
===============

[](#laravel-linebot)

採用 laravel response 的方式來回應 LINEBOT 的訊息

安裝
--

[](#安裝)

```
composer require mesak/laravel-linebot
```

設定檔替換
-----

[](#設定檔替換)

將設定檔複製到專案中

```
php artisan vendor:publish --tag=mesak-linebot.config --force
```

修改 `config/linebot.php` 中的設定

```
    'listener' => 'App\Listeners\LineBotListener',
```

使用
--

[](#使用)

利用標準檔案 `App\Listeners\LineBotListener` 來建立 LINEBOT 的 Listener

```
php artisan vendor:publish --tag=mesak-linebot.listener
```

`LineBotListener.php`

LINEBOT 預設的事件：

- onMessage
- onUnsend
- onFollow
- onUnfollow
- onJoin
- onLeave
- onPostback
- onVideoPlayComplete
- onBeacon
- onAccountLink
- onMemberJoined
- onMemberLeft
- onThings

設定
--

[](#設定)

在 `.env` 中加入

```
LINE_CLIENT_ID=xxxxxxxx
LINE_CLIENT_SECRET=xxxxxxxx
```

在 route 中加入，對應 line webhook 的 post 事件

```
use Illuminate\Http\Request;

Route::post('/line', function (Request $request) {
    return \Facades\Mesak\LineBot\Contracts\Bot::handle($request);
});
```

### Event 事件

[](#event-事件)

套件利用處理 Request 把內容塞入 `Mesak\LineBot\Events\MessageEvent` 中，利用 BotEventSubscribe 發起對話事件，最後回傳 `Mesak\LineBot\Actions\BaseAction` 的事件來處理需要的回應

### 擴充

[](#擴充)

如果需要擴充 LINEBOT 的功能，可以在 `App\Providers\AppServiceProvider` 中的 register 加入 `\Mesak\LineBot\Contracts\Bot::class` 合約綁定

```
    $this->app->singleton(\Mesak\LineBot\Contracts\Bot::class, function ($app) {
        return tap(new \App\Services\EntityBot(config('linebot') , $app['events']) ,function($bot){
            $bot->boot();
        });
    });
```

自訂 `EntityBot` 類別

```
