casperlaitw / laravel-fb-messenger
Laravel 包,用于集成 Facebook Messenger API
Requires
- php: ^7.2.5|^7.3|^8.0
- guzzlehttp/guzzle: ^6.0|^7.0
- illuminate/broadcasting: ^7.0|^8.0
- illuminate/console: ^7.0|^8.0
- illuminate/queue: ^7.0|^8.0
- illuminate/routing: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
- illuminate/view: ^7.0|^8.0
Requires (Dev)
- fzaninotto/faker: ^1.6
- mockery/mockery: ^0.9.5
- nesbot/carbon: ^1.21|^2.0
- phpunit/phpunit: ~5.0
- satooshi/php-coveralls: ^2.0
- v3.0.0
- 2.1.x-dev
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.0
- v1.x-dev
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- dev-master / 1.4.x-dev
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- 1.3.x-dev
- v1.3.1
- v1.3.0
- 1.2.x-dev
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- 1.1.x-dev
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
This package is auto-updated.
Last update: 2024-08-27 08:39:21 UTC
README
这是一个用于 Facebook Messenger 平台 API 的 Laravel 包。
轻松制作您的 Facebook Messenger 聊天机器人。
安装
Composer
composer require casperlaitw/laravel-fb-messenger
Laravel
添加提供者
在您的 config/app.php
文件中将 Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider::class
添加到提供者数组中
'providers' => [ ... Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider::class, ... ], 'alias => [ ... 'Menu' => Casperlaitw\LaravelFbMessenger\Facades\MessengerMenu::class, ... ],
发布配置
php artisan vendor:publish --provider="Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider" --tag="config"
发布菜单配置
支持在文件中定义持久菜单。
像 Laravel 路由一样定义持久菜单。
php artisan vendor:publish --provider="Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider" --tag="menu"
配置
安全
几乎每个 API 请求都需要 access_token
,如果您想提高您应用程序的安全性,您可以使用 appsecret_proof
。请在 .env
文件中添加 MESSENGER_APP_SECRET
并在所有调用上启用证明。 如果您不知道如何获取密钥和启用证明,请查看 Graph Api
.env
MESSENGER_APP_SECRET="APP SECRET TOKEN"
令牌
将您的令牌添加到 .env
文件或修改 fb-messenger.php
配置。
如果您不知道如何获取令牌,请查看 Facebook 开发者
.env
...
MESSENGER_VERIFY_TOKEN="By You Writing"
MESSENGER_APP_TOKEN="Page Access Token"
...
自定义 URL
如果您想自定义 URL,请将 /webhook
替换为您想要的。
最后,您可以通过运行 php artisan route:list
来检查。
return [ 'verify_token' => env('MESSENGER_VERIFY_TOKEN'), 'app_token' => env('MESSENGER_APP_TOKEN'), 'auto_typing' => true, 'handlers' => [App\DefaultHandler::class], 'custom_url' => '/chatbot', // like this 'postbacks' => [], ];
自定义处理程序
DefaultHandler
将对用户回复相同的话语。
您可以查看 DefaultHandler
处理程序 必须 继承 BaseHandler
。
<?php namespace App; use Casperlaitw\LaravelFbMessenger\Contracts\BaseHandler; use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage; use Casperlaitw\LaravelFbMessenger\Messages\Text; class DefaultHandler extends BaseHandler { /** * handle method is required. */ public function handle(ReceiveMessage $message) { $this->send(new Text($message->getSender(), "Default Handler: {$message->getMessage()}")); } }
Postback 处理程序
创建您的 postback 处理程序
$payload
是您设置 fb:get-start 命令或 按钮消息的 postback 按钮等。
$payload
支持正则表达式或字符串。
<?php namespace App; use Casperlaitw\LaravelFbMessenger\Contracts\PostbackHandler; use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage; use Casperlaitw\LaravelFbMessenger\Messages\Text; class StartupPostback extends PostbackHandler { // If webhook get the $payload is `USER_DEFINED_PAYLOAD` will run this postback handler protected $payload = 'USER_DEFINED_PAYLOAD'; // You also can use regex! /** * Handle the chatbot message * * @param ReceiveMessage $message * * @return mixed */ public function handle(ReceiveMessage $message) { $this->send(new Text($message->getSender(), "I got your payload")); } }
添加到 fb-messenger.php
配置
return [ 'verify_token' => env('MESSENGER_VERIFY_TOKEN'), 'app_token' => env('MESSENGER_APP_TOKEN'), 'auto_typing' => true, 'handlers' => [App\YourHandler::class], 'postbacks' => [ App\StartupPostback::class, ], ];
调试路由
使用 Pusher 调试路由
安装 Pusher
请遵循 Laravel 广播 文档来安装 Pusher 包。
配置您的 .env
APP_DEBUG=true
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
发布脚本
如果包已更新,您需要再次运行此脚本。确保您的 JavaScript 是最新的
php artisan vendor:publish --provider="Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider" --tag="public" --force
打开浏览器
http://[your-site]/fb-messenger/debug
API
命令
查看 文档
许可证
本软件包采用 MIT 许可证 许可。