Installation & Configuration
You can install the package via composer:
composer require defstudio/telegraph
Set up
In order to work, Telegraph needs you to run its migrations:
php artisan vendor:publish --tag="telegraph-migrations"
php artisan migrate
Configuration
You can publish the config file with:
php artisan vendor:publish --tag="telegraph-config"
here's an example of what you'll find:
return [ /* * Telegram api base url, it can be overridden * for self-hosted servers */ 'telegram_api_url' => 'https://api.telegram.org/', /* * Sets Telegraph messages default parse mode * allowed values: html|markdown|MarkdownV2 */ 'default_parse_mode' => Telegraph::PARSE_HTML, 'webhook' => [ /* * Sets the webhook URL that will be exposed by the server, * this can be customized or entirely disabled (by setting it to NULL) */ 'url' => '/telegraph/{token}/webhook', /* * Sets the handler to be used when Telegraph * receives a new webhook call. * * For reference, see https://docs.defstudio.it/telegraph/v1/webhooks/overview */ 'handler' => DefStudio\Telegraph\Handlers\EmptyWebhookHandler::class, /* * Middleware to be applied to the webhook route */ 'middleware' => [], /* * Sets a custom domain when registering a webhook. This will allow a local telegram bot api server * to reach the webhook. Disabled by default * * For reference, see https://core.telegram.org/bots/api#using-a-local-bot-api-server */ // 'domain' => 'http://my.custom.domain', /* * If enabled, unknown webhook commands are * reported as exception in application logs */ 'report_unknown_commands' => true, /* * If enabled, Telegraph dumps received * webhook messages to logs */ 'debug' => false, ], /* * Sets HTTP request timeout when interacting with Telegram servers */ 'http_timeout' => 30, /* * Sets HTTP connection request timeout when interacting with Telegram servers */ 'http_connection_timeout' => 10, 'security' => [ /* * if enabled, allows callback queries from unregistered chats */ 'allow_callback_queries_from_unknown_chats' => false, /* * if enabled, allows messages and commands from unregistered chats */ 'allow_messages_from_unknown_chats' => false, /* * if enabled, store unknown chats as new TelegraphChat models */ 'store_unknown_chats_in_db' => false, ], /* * Set model class for both TelegraphBot and TelegraphChat, * to allow more customization. * * Bot model must be or extend `DefStudio\Telegraph\Models\TelegraphBot::class` * Chat model must be or extend `DefStudio\Telegraph\Models\TelegraphChat::class` */ 'models' => [ 'bot' => DefStudio\Telegraph\Models\TelegraphBot::class, 'chat' => DefStudio\Telegraph\Models\TelegraphChat::class, ], 'storage' => [ /** * Default storage driver to be used for Telegraph data */ 'default' => 'file', 'stores' => [ 'file' => [ /** * Telegraph cache driver to be used, must implement * DefStudio\Telegraph\Contracts\StorageDriver contract */ 'driver' => \DefStudio\Telegraph\Storage\FileStorageDriver::class, /* * Laravel Storage disk to use. See /config/filesystems/disks for available disks * If 'null', Laravel default store will be used, */ 'disk' => 'local', /** * Folder inside filesystem to be used as root for Telegraph storage */ 'root' => 'telegraph', ], 'cache' => [ /** * Telegraph cache driver to be used, must implement * DefStudio\Telegraph\Contracts\StorageDriver contract */ 'driver' => \DefStudio\Telegraph\Storage\CacheStorageDriver::class, /* * Laravel Cache store to use. See /config/cache/stores for available stores * If 'null', Laravel default store will be used, */ 'store' => null, /* * Prefix to be prepended to cache keys */ 'key_prefix' => 'tgph', ], ], ], /** * Attachment validation rules, Telegram bot API defaults are set * can be changed to match higher limits when using a local bot * API server (ref. https://core.telegram.org/bots/api#using-a-local-bot-api-server) */ 'attachments' => [ 'thumbnail' => [ 'max_size_kb' => 200, 'max_height_px' => 320, 'max_width_px' => 320, 'allowed_ext' => ['jpg'], ], 'photo' => [ 'max_size_mb' => 10, 'max_ratio' => 20, 'height_width_sum_px' => 10000, ], 'animation' => [ 'max_size_mb' => 50, ], 'video' => [ 'max_size_mb' => 50, ], 'audio' => [ 'max_size_mb' => 50, ], 'document' => [ 'max_size_mb' => 50, ], ], ];
New bot creation
In order to interact with Telegram, a new bot should be created and associated with a Telegram bot. Follow the quickstart guide for an overview of this.