Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.
Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Получаем id c api.telegram.org/bot<TOKEN>/getMe, говорят, не всегда работает с первого раза.
import urllib3, urllib2, urllib, json, datetime, time, requests urllib3.disable_warnings() token = '' chat_id = '' interval = 0 url = 'https://api.telegram.org/bot%s/' % token offset = 0 def get_updates(): global offset offset = offset + 1 updates = url+ 'getUpdates?offset=%s' % offset response = urllib2.urlopen(updates) res = response.read() j = json.loads(res) for new in j['result']: offset = new['update_id'] if not 'message' in new or not 'text' in new['message']: continue from_id = new['message']['chat']['id'] message = new['message']['text'] if message == u'Команды': text = str(''' Команды: \n 1. Пришли фото \n 2. Как дела?\n ''') send_mess(from_id, text) if message == u'Пришли фото': photo = open('image/foto.jpg','rb') send_photo(from_id, photo) if message == u'Как дела?': text = str("Все ок, как у вас?") send_mess(from_id, text) def send_mess(id, text): mess = url+ 'sendMessage' requests.post(mess, data={'chat_id':id, 'text':text}) def send_photo(id, photo): url_photo = url+ 'sendPhoto' requests.post(url_photo, data={'chat_id': id}, files={'photo':photo}) if __name__ == "__main__": while True: try: get_updates() time.sleep(interval) except KeyboardInterrupt: print 'Aborted' break