-
Notifications
You must be signed in to change notification settings - Fork 26
Example
Casper Lai edited this page Nov 6, 2016
·
16 revisions
Example only show handle method
use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\Text;
...
public function handle(ReceiveMessage $message)
{
$this->send(new Text($message->getSender(), "Your Messages"));
}Support reusable in the v2.0
use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\Image;
...
public function handle(ReceiveMessage $message)
{
$image = new Image($message->getSender(), 'https://petersapparel.parseapp.com/img/shirt.png');
// If you want to reusable.
$image->enableReuse();
$response = $this->send($image);
// You can store attachment_id to reusable
$attachmentId = $response->getResponse()['attachment_id'] ;
}
...If my attachment_id = 1379437372074251
use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\Image;
...
public function handle(ReceiveMessage $message)
{
$image = new Image($message->getSender(), null);
$image->setAttachmentId(1379437372074251);
$this->send($image);
}
...use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\ButtonTemplate;
...
public function handle(ReceiveMessage $message)
{
$button = new ButtonTemplate($message->getSender(), 'Default text');
$button
->setText('Choose')
->addPostBackButton('First Bbutton')
->addPostBackButton('Second Button')
->addPostBackButton('Third button');
$this->send($button);
}Call button only use by itself.
use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\ButtonTemplate;
...
public function handle(ReceiveMessage $message)
{
$button = new ButtonTemplate($message->getSender(), 'Default text');
$button
->setText('Choose')
->addCallButton('title', '+15105551234');
$this->send($button);
}Share button only use in the Generic Template Message
use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\GenericTemplate;
...
$generic = new GenericTemplate($message->getSender());
$generic
->addElement('First item', 'description')
->buttons()
->addPostBackButton('First Button')
->addWebButton('facebook', 'https://facebook.com');
$generic->addElement('Second item', 'description')
->buttons()
->addPostBackButton('Second Button')
->addWebButton('google', 'http://www.google.com')
->addShareButton();
$this->send($generic);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';
/**
* Handle the chatbot message
*
* @param ReceiveMessage $message
*
* @return mixed
*/
public function handle(ReceiveMessage $message)
{
$this->send(new Text($message->getSender(), "I got your payload"));
}
}use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\Text;
use Casperlaitw\LaravelFbMessenger\Messages\QuickReply;
...
public function handle(ReceiveMessage $message)
{
$text = new Text($message->getSender(), "Default Handler: {$message->getMessage()}");
$text->addQuick(new QuickReply('Red', 'PAYLOAD_RED'))
->addQuick(new QuickReply('Green', 'PAYLOAD_GREEN'));
$this->send($text);
}User click your quick reply, Webhook will receive Postback object.
So You should use PostbackHandler processed.
Get user info from sender id.
Response columns reference docs
use Casperlaitw\LaravelFbMessenger\Messages\ReceiveMessage;
use Casperlaitw\LaravelFbMessenger\Messages\User;
...
public function handle(ReceiveMessage $message)
{
// response will get user info array.
$response = $this->send(new User($message->getSender());
}