This is a laravel package for Facebook Messenger Platform API.
Easy to making your facebook messenger.
composer require adolphyu/laravel-facebook-messenger
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,
...
],
php artisan vendor:publish --provider="AdolphYu\FBMessenger\PackageServiceProvider" --tag="config"
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"
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"
...
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
];
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
}
}
}
You can check out Processes
Source code Processes
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'));
});
If you set debug=true
in the fb-messenger.php
file, you will see debug information in the log file
https://github.com/CasperLaiTW/laravel-fb-messenger
This package is licensed under the MIT license.