Smart Gamma Telegram bot bundle for Symfony errors project's chat notifications
The Telegram bot allow to send notifications about Symfony critical errors to the configured project chat, (*1)
1. Install
composer require smart-gamma/symfony-errors-telegram-bot
2. Configuration
2.1. Activate the bundle
Symfony version < 4.0
Add to AppKernel.php, (*2)
new Gamma\ErrorsBundle\GammaErrorsBundle(),
, (*3)
#### Symfony with dotenv, (*4)
add to app/config/service.yaml, (*5)
parameters:
gamma.base_host: '%env(BASE_URI)%'
, (*6)
Define "BASE_URI" at .env or replace it with your env variable that defines base uri of your project., (*7)
#### Symfony without dotenv, (*8)
add to parameter.yml, (*9)
gamma.base_host: 'put your base uri here'
2.2. Add configuration
Put the file gamma_errors_bot.yaml to vendor/packages folder at app/config, (*10)
gamma_errors:
enabled: true
telegram_channel:
auth_key: '%env(GAMMA_ERRORS_TELEGRAM_AUTH_KEY)%'
chat_id: '%env(GAMMA_ERRORS_TELEGRAM_CHAT_ID)%'
3. Creating a bot
Start a conversation with @BotFather., (*11)
You: /newbot
>>>>>>>>>>
@BotFather: Alright, a new bot. How are we going to call it? Please choose a name for your bot.
<<<<<<<<<<
You: Sample Error Bot
>>>>>>>>>>
@BotFather: Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example:
TetrisBot or tetris_bot.
<<<<<<<<<<
Me: test_error_bot
>>>>>>>>>>
@BotFather: Done! Congratulations on your new bot. You will find it at telegram.me/cronus_bot. You can now add a
description, about section and profile picture for your bot, see /help for a list of commands. By the way, when
you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure
the bot is fully operational before you do this.
Use this token to access the HTTP API:
111111:xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
4. Get chat identifier
After the created bot was added to your project's group you should retrieve its chat_id, (*12)
Make POST request to URL: https://api.telegram.org/bot_token_/getUpdates, (*13)
Example:, (*14)
Request, (*15)
curl -X POST https://api.telegram.org/bot111111:xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/getUpdates
Response, (*16)
{
"ok": true,
"result": [
{
"update_id": 222222,
"message": {
"message_id": 3333,
"from": {
"id": 444444,
"first_name": "Test",
"last_name": "Test",
"username": "test"
},
"chat": {
"id": -111111
"first_name": "Test",
"last_name": "Test",
"username": "test",
"type": "private"
},
"date": 1480701504,
"text": "test"
}
}
]
}
chat_id is the number "-111111"., (*17)
- Slack support
In order to have additional channel of notification you can enable Slack with webhook integration, (*18)
gamma_errors:
enabled: true
telegram_channel:
....
slack_channel:
webhook: '%env(GAMMA_ERRORS_SLACK_WEBHOOK)%'
channel: '%env(GAMMA_ERRORS_SLACK_CHANNEL)%'