laravel-facebook-messenger maintained by adolphyu
Laravel Facebook Messenger
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.