All Projects → CasperLaiTW → Laravel Fb Messenger

CasperLaiTW / Laravel Fb Messenger

Licence: mit
Laravel Facebook Messenger Provider

Projects that are alternatives of or similar to Laravel Fb Messenger

messenger-bot
A Node bot server for the Facebook Messenger Platform
Stars: ✭ 23 (-72.94%)
Mutual labels:  messenger-bot, facebook-messenger-bot, messenger-platform
Chatblocks
Declarative Messenger chatbot framework
Stars: ✭ 48 (-43.53%)
Mutual labels:  facebook-messenger-bot, messenger-bot, messenger-platform
Swiftybot
How to create a Telegram, Facebook Messenger, and Google Assistant bot with Swift using Vapor on Ubuntu / macOS.
Stars: ✭ 247 (+190.59%)
Mutual labels:  facebook-messenger-bot, messenger-bot
botnaut
Chatbot Framework for Facebook Messenger platform
Stars: ✭ 13 (-84.71%)
Mutual labels:  facebook-messenger-bot, messenger-platform
messenger-bot-nlp
A Facebook Messenger bot sample integrated with built-in NLP from wit.ai
Stars: ✭ 13 (-84.71%)
Mutual labels:  messenger-bot, messenger-platform
Messenger Platform Postman Collection
A delicious Postman collection for all your Messenger Platform needs.
Stars: ✭ 150 (+76.47%)
Mutual labels:  messenger-bot, messenger-platform
Facebook
📨 Facebook Notifications Channel for Laravel
Stars: ✭ 120 (+41.18%)
Mutual labels:  facebook-messenger-bot, laravel
MessengerBot-WebAPI
Asp.net WebAPI Template of Facebook Messenger Bot
Stars: ✭ 22 (-74.12%)
Mutual labels:  messenger-bot, facebook-messenger-bot
React Messenger Customer Chat
React component for messenger customer chat plugin
Stars: ✭ 221 (+160%)
Mutual labels:  messenger-bot, messenger-platform
messenger
💬 A PHP library for Facebook Messenger
Stars: ✭ 53 (-37.65%)
Mutual labels:  messenger-bot, facebook-messenger-bot
Botvid 19
Messenger Bot that scrapes for COVID-19 data and periodically updates subscribers via Facebook Messages. Created using Python/Flask, MYSQL, HTML, Heroku
Stars: ✭ 34 (-60%)
Mutual labels:  facebook-messenger-bot, messenger-bot
php-chatfuel-class
A PHP class to generate JSON output for your chatbot (build with Chatfuel)
Stars: ✭ 22 (-74.12%)
Mutual labels:  messenger-bot, facebook-messenger-bot
messenger-node
A Node.js SDK for using the Messenger Platform
Stars: ✭ 42 (-50.59%)
Mutual labels:  facebook-messenger-bot, messenger-platform
Fbbot
Minimal framework/SDK for facebook messenger bots. BYOS (Bring Your Own Server)
Stars: ✭ 46 (-45.88%)
Mutual labels:  facebook-messenger-bot, messenger-platform
Laravel Messenger Bot Management
😄 Messenger bot Q&A management with Laravel
Stars: ✭ 52 (-38.82%)
Mutual labels:  messenger-bot, laravel
Laravel Blog
Laravel 8.0 blog application with Vue.js, Homestead, Horizon, Telescope and Pusher
Stars: ✭ 1,248 (+1368.24%)
Mutual labels:  laravel
Voyager Zh
㊙️voyager 的中文汉化版 基于laravel 的管理后台 权限控制,菜单,数据库手脚架,长期更新
Stars: ✭ 84 (-1.18%)
Mutual labels:  laravel
Crud Generator
Laravel CRUD Generator
Stars: ✭ 1,244 (+1363.53%)
Mutual labels:  laravel
Laralack
A Slack clone written in PHP & Laravel framework
Stars: ✭ 82 (-3.53%)
Mutual labels:  laravel
Laravel Schedule List
Laravel package to add command to list all scheduled artisan commands
Stars: ✭ 84 (-1.18%)
Mutual labels:  laravel

Laravel Facebook Messenger Provider

Build Status Coverage Status StyleCI Latest Stable Version Latest Unstable Version Total Downloads Monthly Downloads

This is a laravel package for Facebook Messenger Platform API.

Easy to making your facebook messenger chatbot.

Installation

Composer

composer require casperlaitw/laravel-fb-messenger

Laravel

Add Provider

In your config/app.php add Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider::class to the providers array:

'providers' => [
    ...
    Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider::class,
    ...
],

'alias => [
    ...
    'Menu' => Casperlaitw\LaravelFbMessenger\Facades\MessengerMenu::class,
    ...
],

Publish Configuration

php artisan vendor:publish --provider="Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider" --tag="config"

Publish Menu Configure

Support define persistent menu in file.

Define persistent menu like laravel routes.

document

php artisan vendor:publish --provider="Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider" --tag="menu"

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'),
     'auto_typing' => true,
     'handlers' => [App\DefaultHandler::class],
     'custom_url' => '/chatbot', // like this
     'postbacks' => [],
 ];

Custom Handler

The DefaultHandler will reply the same words to user.

You can check out DefaultHandler

Handler MUST BE extends 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 Handler

Create your postback handler

$payload is you setting that fb:get-start command or button message's postback button etc.

$payload support regex or string.

<?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"));
    }
}

Add to fb-messenger.php config

return [
    'verify_token' => env('MESSENGER_VERIFY_TOKEN'),
    'app_token' => env('MESSENGER_APP_TOKEN'),
    'auto_typing' => true,
    'handlers' => [App\YourHandler::class],
    'postbacks' => [
        App\StartupPostback::class,
    ],
];

Example

Debug Route

The debug route using Pusher

debug-route

Install pusher

Please follow Laravel Broadcasting document to install pusher package.

Configure your .env

  APP_DEBUG=true
  BROADCAST_DRIVER=pusher
  PUSHER_APP_ID=
  PUSHER_APP_KEY=
  PUSHER_APP_SECRET=

Publish script

If package updated, you need to run this script again. Keep your javascript is up-to-date

php artisan vendor:publish --provider="Casperlaitw\LaravelFbMessenger\LaravelFbMessengerServiceProvider" --tag="public" --force

Open browser

http://[your-site]/fb-messenger/debug

API

API Document

Commands

See the document

License

This package is licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].