adolphyu / laravel-facebook-messenger
A Laravel Package to Integrate Facebook Messenger API
Requires
- php: ^7.3
- guzzlehttp/guzzle: ~6.0
- illuminate/support: ^5.5|^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^9.3
README
This is a laravel package for Facebook Messenger Platform API.
Easy to making your facebook messenger.
Installation
Composer
composer require adolphyu/laravel-facebook-messenger
Laravel
Add Provider
In your config/app.php
add AdolphYu\FBMessenger\PackageServiceProvider::class
to the providers array:
'providers' => [ ... AdolphYu\FBMessenger\PackageServiceProvider::class, ... ], 'alias => [ ... 'FBMSG' => AdolphYu\FBMessenger\Facades\FBMSG::class, ... ],
Publish Configuration
php artisan vendor:publish --provider="AdolphYu\FBMessenger\PackageServiceProvider" --tag="config"
Configuration
Security
Almost every API request with access_token
, if you want to improved security in your app,
you can use appsecret_proof
. Please add MESSENGER_APP_SECRET
to .env
file and enable proof on all calls.
If you don't know how to get secret token and enabled proof, please checkout Graph Api
.env
MESSENGER_APP_SECRET="APP SECRET TOKEN"
Token
Add you token to .env
file or modify fb-messenger.php
config.
If you don't know how to get token, please checkout Facebook Developer
.env
...
MESSENGER_VERIFY_TOKEN="By You Writing"
MESSENGER_APP_TOKEN="Page Access Token"
...
Custom Url
If you want to custom url, replace /webhook
to you want.
Finally, you can run php artisan route:list
to check.
return [ 'verify_token' => env('MESSENGER_VERIFY_TOKEN'), 'app_token' => env('MESSENGER_APP_TOKEN'), 'custom_url' => '/chatbot', // like this ];
Receive Message
Processes
The Process
will process the information sent by facebook messenger
THe Process
must implement ProcessInterface
interface.
There is a method handle
in the ProcessInterface
, which processes the information sent by facebook messenger
You can check out ProcessInterface
If you need to add or customize process, you must implement this interface
<?php namespace App; use AdolphYu\FBMessenger\Processes\Process; class CustomProcess extends Process { public function handle($data) { //your code dd($data); } }
If you want to know $data
, you can refer to Webhook
Add code in the boot
method of the AppServiceProvider
or other ServiceProvider
<?php namespace App\Providers; use App\CustomProcess; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { // } /** * Bootstrap any application services. * * @return void */ public function boot() { // if($this->app->get('fbmsg')){ $this->app->get('fbmsg')->addProcess(new CustomProcess());//like this } } }
Processes using the system
You can check out Processes
Source code Processes
Send Message
After completing the configuration, sending a message will become very simple
Examples are as follows
use AdolphYu\FBMessenger\Models\TextMessaging; Route::get('/', function () { FBMSG::send(new TextMessaging('<psid>','HELLO')); });
Debug
If you set debug=true
in the fb-messenger.php
file, you will see debug information in the log file
Thanks
https://github.com/CasperLaiTW/laravel-fb-messenger
License
This package is licensed under the MIT license.