Python Telegram Bot A Python wrapper around the Telegram Bot API. By `Leandro Toledo `_ .. image:: https://travis-ci.org/leandrotoledo/python-telegram-bot.svg?branch=master :target: https://travis-ci.org/leandrotoledo/python-telegram-bot :alt: Travis CI Status ============ Introduction ============ This library provides a pure Python interface for the `Telegram Bot API `_. It works with Python versions from 2.6+. Python 3 support is under development. ========== Installing ========== You can install python-telegram-bot using:: $ pip install python-telegram-bot ================ Getting the code ================ The code is hosted at https://github.com/leandrotoledo/python-telegram-bot Check out the latest development version anonymously with:: $ git clone https://github.com/leandrotoledo/python-telegram-bot $ cd python-telegram-bot Setup a virtual environment and install dependencies: $ make env Activate the virtual environment created: $ source env/bin/activate Run tests: $ make test To see other options available, run: $ make help ============= Documentation ============= View the last release API documentation at: https://core.telegram.org/bots/api --- API --- The API is exposed via the ``telegram.Bot`` class. To generate an Access Token you have to talk to `BotFather `_ and follow a few simple steps (described `here `_). For full details see the `Bots: An introduction for developers `_. To create an instance of the ``telegram.Bot``:: >>> import telegram >>> bot = telegram.Bot(token='token') To see if your credentials are successful:: >>> print bot.getMe() {"first_name": "Toledo's Palace Bot", "username": "ToledosPalaceBot"} **NOTE**: much more than the small sample given here will print Bots can't initiate conversations with users. A user must either add them to a group or send them a message first. People can use ``telegram.me/`` links or username search to find your bot. To fetch text messages sent to your Bot:: >>> updates = bot.getUpdates() >>> print [u.message.text for u in updates] To fetch images sent to your Bot:: >>> updates = bot.getUpdates() >>> print [u.message.photo for u in updates if u.message.photo] To post a text message (you'll always need chat_id to reply users):: >>> chat_id = bot.getUpdates()[-1].message.chat_id >>> bot.sendMessage(chat_id=chat_id, text=u"I'm sorry Dave I'm afraid I can't do that.") To post a audio file (you'll always need chat_id to reply users):: >>> chat_id = bot.getUpdates()[-1].message.chat_id >>> bot.sendAudio(chat_id=chat_id, audio=open('tests/telegram.ogg', 'rb')) To tell the user that something is happening on bot's side:: >>> chat_id = bot.getUpdates()[-1].message.chat_id >>> bot.sendChatAction(chat_id=chat_id, action=telegram.ChatAction.TYPING) There are many more API methods, to read the full API documentation:: $ pydoc telegram.Bot ---- TODO ---- Patches and bug reports are `welcome `_, just please keep the style consistent with the original source. Add more example scripts. Add `custom keyboards `_ methods. Add commands handler.