Skip to content

polettix/Bot-ChatBots-Telegram

Repository files navigation

NAME

Bot::ChatBots::Telegram - Telegram adapter for Bot::ChatBots

VERSION

This document describes Bot::ChatBots::Telegram version {{[ version ]}}.

SYNOPSIS

# A minimal Telegram Bot using WebHooks
use Log::Any qw< $log >;
use Log::Any::Adapter;
use Mojolicious::Lite;
Log::Any::Adapter->set(MojoLog => logger => app->log);
plugin 'Bot::ChatBots::Telegram' => instances => [
   [
      'WebHook',
      processor  => \&processor,
      register   => 1,
      token      => $ENV{TOKEN},
      unregister => 1,
      url        => 'https://example.com:8443/mybot',
   ],
   # more can follow here...
];
app->start;
sub processor {
   my $record = shift;
   # do whatever you want with $record, e.g. set a quick response
   $record->{send_response} = 'your thoughs are important for us!';
   return $record;
}

# You can also add Bot::ChatBots::Telegram::LongPoll sources if you want

DESCRIPTION

This module allows you to to define Bot::ChatBots for Telegram, a messaging application. For an introduction and tutorial, see Bot::ChatBots::Telegram::Guide::Tutorial.

Strictly speaking, this module is a Mojolicious plugin that allows you to load and use Bot::ChatBots::Telegram::WebHook (see "SYNOPSIS" for a quick example). On the other hand, the distribution also contains other modules that allow you to interact with Telegram, e.g. Bot::Chatbots::Telegram::LongPoll.

These modules rely upon Log::Any for emitting logging information; you are encouraged to read that module's documentation for further information. For what we are concerned, you have to remember that all logs will be lost unless you configure Log::Any, e.g. to send messages on standard output you can do this:

use Log::Any::Adapter qw< Stderr >;

If using the web hook, then you will probably want to send the logs together with Mojolicious's logs, like this:

use Mojolicious::Lite;
use Log::Any::Adapter;
Log::Any::Adapter->set(MojoLog => logger => app->log);

The configuration above relies on the presence of Log::Any::Adapter::MojoLog.

METHODS

All the heavylifting is done by Bot::ChatBots::MojoPlugin.

BUGS AND LIMITATIONS

Report bugs through GitHub (patches welcome).

SEE ALSO

Bot::ChatBots, Bot::ChatBots::Telegram::WebHook, Bot::ChatBots::Telegram::LongPoll, WWW::Telegram::BotAPI.

AUTHOR

Flavio Poletti polettix@cpan.org

COPYRIGHT AND LICENSE

Copyright (C) 2016, 2018 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.

About

Telegram adapter for Bot::ChatBots

Resources

License

Stars

Watchers

Forks

Packages

No packages published