php-telegram-bot / laravel
Integrates PHP Telegram Bot into Laravel.
Fund package maintenance!
noplanman
Tidelift
Patreon
Liberapay
Open Collective
Ko Fi
github.com/php-telegram-bot/core#donate
Installs: 5 913
Dependents: 0
Suggesters: 0
Security: 0
Stars: 173
Watchers: 14
Forks: 51
Open Issues: 7
Requires
- ext-pcntl: *
- illuminate/support: ~7|~8|~9|~10
- longman/telegram-bot: ^0.81
Requires (Dev)
- phpunit/phpunit: ~9.0
- symfony/process: ^5.3
README
Installation
Install this package through Composer. Run this command in your project's terminal:
composer require php-telegram-bot/laravel
Execute the following command to publish the folder structure to your Laravel application:
php artisan telegram:publish
This also includes a dummy /start
command to give you a quick start.
Since we're using the database part of php-telegram-bot you should run the migrations so the database schema gets installed:
php artisan migrate
And add the following lines to your .env file:
TELEGRAM_API_TOKEN= TELEGRAM_BOT_USERNAME= TELEGRAM_API_URL= TELEGRAM_ADMINS=
TELEGRAM_API_TOKEN
and TELEGRAM_BOT_USERNAME
should be filled with the corresponding data from @BotFather
TELEGRAM_API_URL
is optional and can be filled with the URL to your custom Bot API Server if you want to use one.
TELEGRAM_ADMINS
is optional and a comma-separated list of Telegram User IDs that gets passed to the enableAdmins
command of php-telegram-bot to enable admin commands for those users.
After that you can run php artisan telegram:set-webhook
if your development server is reachable from the outside or you're using a custom bot api server.
Or php artisan telegram:fetch
to start fetching your updates via polling.
⚠️ Be aware that you have to cancel and restart the telegram:fetch
command, if you change your code.
Usage
For further basic configuration of this Laravel package you do not need to create any configuration files.
Artisan terminal commands for the Webhook usage (remember, that you need an HTTPS server for it):
# Use this method to specify a url and receive incoming updates via an outgoing webhook php artisan telegram:set-webhook # List of available options: # --d|drop-pending-updates : Drop all pending updates # --a|all-update-types : Explicitly allow all updates (including "chat_member") # --allowed-updates= : Define allowed updates (comma-seperated) # Use this method to remove webhook integration if you decide to switch back to getUpdates php artisan telegram:delete-webhook # List of available options: # --d|drop-pending-updates : Pass to drop all pending updates
Artisan terminal commands for the Telegram getUpdates method:
# Fetches Telegram updates periodically php artisan telegram:fetch # List of available options: # --a|all-update-types : Explicitly allow all updates (including "chat_member") # --allowed-updates= : Define allowed updates (comma-seperated)
Artisan terminal command for Telegram Server logging out:
# Sends a logout to the currently registered Telegram Server
php artisan telegram:logout
Artisan terminal command for closing Telegram Server:
# Sends a close to the currently registered Telegram Server
php artisan telegram:close
Artisan terminal command for publishing Telegram command folder structure in your project:
# Publishes folder structure for Telegram Commands # Default StartCommand class will be created php artisan telegram:publish
Artisan terminal command for creating new Telegram command class in your project:
# Create a new Telegram Bot Command class # e.g. php artisan make:telegram-command Menu --> will make User command class MenuCommand # e.g. php artisan make:telegram-command Genericmessage --system --> will make System command class GenericmessageCommand php artisan make:telegram-command # List of available options: # name : Name of the Telegram Command # --a|admin : Generate a AdminCommand # --s|system : Generate a SystemCommand # Without admin or system option default User command will be created
Credits
License
Please see the license file for more information.