airflow.providers.telegram.hooks.telegram

Hook for Telegram

Module Contents

class airflow.providers.telegram.hooks.telegram.TelegramHook(telegram_conn_id: Optional[str] = None, token: Optional[str] = None, chat_id: Optional[str] = None)[source]

Bases: airflow.hooks.base.BaseHook

This hook allows you to post messages to Telegram using the telegram python-telegram-bot library.

The library can be found here: https://github.com/python-telegram-bot/python-telegram-bot It accepts both telegram bot API token directly or connection that has telegram bot API token. If both supplied, token parameter will be given precedence, otherwise 'password' field in the connection from telegram_conn_id will be used. chat_id can also be provided in the connection using 'host' field in connection. Following is the details of a telegram_connection: name: 'telegram-connection-name' conn_type: 'http' password: 'TELEGRAM_TOKEN' host: 'chat_id' (optional) Examples: .. code-block:: python

# Create hook telegram_hook = TelegramHook(telegram_conn_id='telegram_default') # or telegram_hook = TelegramHook(telegram_conn_id='telegram_default', chat_id='-1xxx') # or telegram_hook = TelegramHook(token='xxx:xxx', chat_id='-1xxx')

# Call method from telegram bot client telegram_hook.send_message(None', {"text": "message", "chat_id": "-1xxx"}) # or telegram_hook.send_message(None', {"text": "message"})

Parameters
  • telegram_conn_id (str) -- connection that optionally has Telegram API token in the password field

  • token (str) -- optional telegram API token

  • chat_id (str) -- optional chat_id of the telegram chat/channel/group

get_conn(self)[source]

Returns the telegram bot client

Returns

telegram bot client

Return type

telegram.bot.Bot

__get_token(self, token: Optional[str], telegram_conn_id: str)[source]

Returns the telegram API token

Parameters
  • token (str) -- telegram API token

  • telegram_conn_id (str) -- telegram connection name

Returns

telegram API token

Return type

str

__get_chat_id(self, chat_id: Optional[str], telegram_conn_id: str)[source]

Returns the telegram chat ID for a chat/channel/group

Parameters
  • chat_id (str) -- optional chat ID

  • telegram_conn_id (str) -- telegram connection name

Returns

telegram chat ID

Return type

str

send_message(self, api_params: dict)[source]

Sends the message to a telegram channel or chat.

Parameters

api_params (dict) -- params for telegram_instance.send_message. It can also be used to override chat_id

Was this entry helpful?