NAME

Bot::ChatBots::Messenger::WebHook - WebHook for Bot::ChatBots::Messenger

SYNOPSIS

   use Mojolicious::Lite;
   plugin 'Bot::ChatBots::Messenger',
      helper_name => 'messenger', # default is chatbots.messenger
      instances => [
         [
            WebHook => path => '/messenger/yadda-yadda-yadda',
            processor => \&process,
            verify_token => 'yadda-yadda-yadda',
         ]
      ];
   app->start;

   sub process {
      my $record = shift;
      # ...
      return $record;
   }

DESCRIPTION

This module allows you to load a Mojolicious plugin for dealing with Facebook Messenger webhooks for a chatbot.

ACCESSORS

This module consumes role Bot::ChatBots::Role::WebHook, inheriting all the accessors. The accessors in the following subsections are added.

no_routes

boolean flag to avoid routes generation upon plugin import. Used during the "BUILD" process. Defaults to 0, meaning that the routes will be generated (both "install_route" in Bot::ChatBots::WebHook and "install_get_route").

verify_token

the verification token required by FaceBook to make sure your settings are accepted by your bot. You MUST set this or it will complain loudly upon calling "install_get_route".

METHODS

This module consumes role Bot::ChatBots::Role::WebHook and implements or overrides the methods in the following subsections.

BUILD

Called by Moo construction process. It uses "no_routes" to establish whether to call "install_route" in Bot::ChatBots::WebHook and "install_get_route" or not.

install_get_route

   $obj->install_get_route(%args); # OR
   $obj->install_get_route(\%args);

Install the additional GET route for Facebook verification process. See "validation_token", which MUST be available for this method to work.

normalize_record

   my $r = $obj->normalize_record($input_record);

Modify $input_record in-place and return it, trying to put it in some standard shape. Which has not been standardized yet.

See "normalize_record" in Bot::ChatBots::Role::WebHook.

parse_request

   my @updates = $obj->parse_request($c->req);

See "parse_request" in Bot::ChatBots::Role::WebHook.

BUGS AND LIMITATIONS

Report bugs either through RT or GitHub (patches welcome).

SEE ALSO

Foo::Bar.

AUTHOR

Flavio Poletti <polettix@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2016 by Flavio Poletti <polettix@cpan.org>

This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.