* Support secret_token for setWebHook api
* Revert configuration YAML changes; generate and store secret token instead
* Reformat codes
* Revert storage of secret token; use ephemeral secret token instead
* Reformat
* Update homeassistant/components/telegram_bot/webhooks.py
* Fix when header is not present
* Check for non-empty token
* Fix tests to support secret token
* Add tests for invalid secret token
* Minor: remove comment
* Revert back to 401
* ... and for tests
* Change patching method for the generation of secret tokens
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* telegram_bot three platform support proxy_url and proxy_params
* add telegram_bot._initialize_bot to create the bot instance
* rename _initialize_bot to initialize_bot
* telegram_bot and notify.telegram enhancements:
- Receive callback queries and produce `telegram_callback` events.
- Custom reply_markup (keyboard or inline_keyboard) for every type of message (message, photo, location & document).
- `disable_notification`, `disable_web_page_preview`, `reply_to_message_id` and `parse_mode` optional keyword args.
- Line break between title and message fields: `'{}\n{}'.format(title, message)`
- Move Telegram notification services to `telegram_bot` component and forward service calls from the telegram notify service to the telegram component, so now the `notify.telegram` platform depends of `telegram_bot`, and there is no need for `api_key` in the notifier configuration. The notifier calls the new notification services of the bot component:
- telegram_bot/send_message
- telegram_bot/send_photo
- telegram_bot/send_document
- telegram_bot/send_location
- telegram_bot/edit_message
- telegram_bot/edit_caption
- telegram_bot/edit_replymarkup
- telegram_bot/answer_callback_query
- Added descriptions of the new notification services with a services.yaml file.
- CONFIG_SCHEMA instead of PLATFORM_SCHEMA for the `telegram_bot` component, so only one platform is allowed.
- Async component setup.
* telegram_bot and notify.telegram enhancements: change in requirements_all.txt.
* Always register the view if a webhook exists.
* Return True if platform is set up succesfully, False otherwise.
* Remove the webhook when home assistant stops. Webhooks and long
polling are mutually excklusive. If a webhook is left after home
assistant is stopped, a polling telegram bot is unable to be set up,
on next start of home assistant.