Telegram API и его использование. Telegram api на русском — Telegram bot что такое и как делать Исходный код сервиса для получения прогноза погоды

Для всеобщего использования платформы системы Телеграмм программистами и разработчиками предлагается целых два варианта взаимодействия: Telegram API (помогает делать индивидуальные клиенты внутри программы) и бот API (позволяет очень просто производить всевозможные программы для работы в Телеграмм с использованием его чат-сообщений как интерфейса и метода ввода информации).

Телеграм АПИ и боты

АПИ Телеграмма полностью открыт для внешнего рассмотрения и использования в своих программных разработках.

Чтобы сделать программу, полезную для вас или других пользователей мессенджера, не нужно обладать всем спектром знаний о том методе шифрования, который применяется тут. Для взаимодействия с сервером в данном случае применяется простой протокол https. Версия, используемая в рассматриваемом случае, является упрощенной, поэтому доступна всем.

Если говорить о втором варианте взаимодействия, который предлагается пользователям, бот АПИ, то он позволяет включать в работу системы ботов, причем без предоставления для них отдельного номера телефона, так как для бота он не нужен.

Важные моменты

Есть несколько важных моментов, которые стоит учитывать при использовании Телеграмм АПИ:

  • При создании приложений на русском или любом другом языке для выполнения полезных действий на базе платформы этого мессенджера необходимо, чтобы все пользователи данного программного продукта знали, что он является частью всей системы и в то же время разработан на ее базе.
  • Владельцы рекомендуют перед началом разработок ботов и других приложений получить собственный ID для использования АПИ Telegram.
  • Чтобы получить ИД-номер, нужно войти (сделать) свой аккаунт на https://my.telegram.org и, перейдя к папке инструментов по разработке АПИ, вписать все требующиеся данные в анкету на сайте.
  • Перед разработчиком, который собирается написать приложение для интеграции в Телеграмм, открывается масса возможностей. Вот, например, он может создать программу (бота) как на php, так и на языке python.
  • Несмотря на полную прозрачность и открытость, все же не разрешается в свои личных прогах, ботах, которые делаются для использования в Телеграмм-просторах, использовать для названия (или как часть названия) логотип и само наименование компании.

Создание игр

Одной из самых привлекательных сторон возможности участвовать в создании такой «махины», как Телеграмм с ее ботами, приложениями и другими встроенными функциями, безусловно, является чрезвычайно популярное направление - создание с помощью Телеграмма и его открытого АПИ игр.

Желающий поучаствовать в этом даже не должен будет все делать сам - есть специальные боты, которые помогают делать игру и значительно убыстряют этот процесс. После ее создания можно посылать готовый продукт в чаты и вообще весело проводить время.

Пару слов о том, как настроить отправку сообщений в телеграм (и при этом не надо программировать, ну, необязательно).

Для данной статьи я создал очередного бота, и даже не буду прятать АПИ ключи, т.к. мне его не жалко. По мере прочтения вы можете использовать его, хотя я вам советую создать своего бота, и не давать АПИ ключи никому.

Создание бота

Итак, первое, что нужно сделать, это завести бота. Для этого в списке контактов найдите @BotFather. Это специальный бот от телеграмма, он нужен для заведения ботов. Я пользуюсь в данном случае web.telegram.org, это удобно, не нужно ничего перекидывать с телефона на комп.

Найдите @BotFather, и отправьте ему три команды: /newBot (прям так напишите, как на скриншоте), и два раза укажите имя нового бота. Важно, имя бота должно заканчиваться на “bot” – таковы требования.

После этого BotFather ответит вам, что всё ОК, и вернет ключ для API, который потребуется в дальнейшем. Для экспериментов пока что можете взять мой ключ - 515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ .

Подключение

Теперь, в списке контактов найдите созданного вами бота по имени (в моем случае, BablofilDemoBot), и нажмите кнопку start. Это важно, т.к. бот не может сам навязываться к людям.

После этого откройте в браузере вот такую ссылку

(для своего бота замените АПИ ключ на свой, вот так https://api.telegram.org/botAPIAPIAPIAPIAPI /getUpdates). Вы должны увидеть примерно тоже, что и на скриншоте – последнюю активность бота – кто подключился, кто что написал и т.п. Если там пусто, напишите в телеграме боту какую-нибудь чушь и обновите страницу. Ваша итоговая цель – найти chat_id

Я выделил то, что вам нужно найти. ВНИМАНИЕ – если пользуетесь моим ботом, то имейте в виду, что его мог подключить кто угодно, поэтому вы можете найти чужой chat_id – проверяйте, что тут упоминается ваш ник. А лучше заведите отдельного бота) Иначе кто угодно сможет вам писать от имени бота – API ключи-то известны всем.

Отправка сообщения

На этом шаге вы знаете API ключ и chat_id. Осталось только написать сообщение.

Соответственно, замените API, chat_id и текст сообщения на свои. Я отправляю слово PING как сообщение бота.

https://api.telegram.org/botAPIAPIAPI /sendMessage?chat_id=CHATID &text=TEXT

Ииииии… Бот присылает вам сообщение в телеграм.

Ну, а теперь, если вы хотите отправлять сообщения себе или в группу (ах да, если хотите в группу, то добавьте бота в группу и снова получите chat_id, только уже группы) из скрипта, то просто дергайте ссылку с помощью, скажем, вот такого кода:

import urllib.request urllib . request . urlopen (""" https://api.telegram.org/bot{API_TOKEN}/sendMessage?chat_id={CHAT_ID}&text={TEXT} """ . format ( API_TOKEN = "515479662:AAF1wTj2Xcb3HVURbc_5DbZ9qiz4ddds9iQ" , CHAT_ID = "303964420" , TEXT = "TEST TEST TEST" ))

В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных "фишек" Telegram является его якобы защищённость - по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.

В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы "запилим" полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории .

Документация, описывающая процесс взаимодействия с ботами Telegram находится . Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов - telepot . Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.

Как создать Telegram бота?

Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:

  • Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно
  • Добавляем к себе в контакт-лист бота с именем BotFather
  • Запускаем процедуру "общения" с ботом нажатием кнопки Start . Далее перед нами предстанет список команд точно как на скриншоте.
  • Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot . Например, DjangoBot или Django_bot.

  • Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю:)

После создания бота, обратите внимание на строку с текстом:

Use this token to access the HTTP API:

За которой следует т.н. token по которому мы будем манипулировать нашим ботом. Помимо функции создания telegram бота, BotFather также имеет ряд других возможностей:

  • Присвоить боту описание
  • Установить аватар
  • Поменять token

Приступаем к кодированию

Как я ранее уже упоминал, мы будем писать веб-приложение на Django . Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates ) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.

  • Использование вызова API метода getUpdates
  • Установка Webhook

Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook . Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить от Let"s Encrypt.

Подробнее о getUpdates и setWebhook можно почитать соответственно и .

Итак, вернёмся к python библиотеке для работы с Telegram - telepot . На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:

Pip install telepot

Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:

Import telepot token = "123456" TelegramBot = telepot.Bot(token) print TelegramBot.getMe()

Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:

{u"username": u"PythonPlanetBot", u"first_name": u"Python Planet Bot", u"id": 199266571}

Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.

Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start

Выполняем код:

TelegramBot.getUpdates() [{u"message": {u"date": 1459927254, u"text": u"/start", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 1, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, u"update_id": 649179764}]

Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update . Внутри Update находится объект Message . Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.

TelegramBot.getUpdates(649179764+1) [{u"message": {u"date": 1459928527, u"text": u"hello bro", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 13, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, u"update_id": 649179765}]

На этапе написания простейшего Telegram бота нам этих вызовов достаточно. Приступим к написанию Django приложения для обслуживания наших пользователей.

Простая функция парсинга RSS фида Planet Python выглядит вот так.

Одним из преимуществ мессенджера Telegram от Skype, WhatsApp и прочих ПО, является возможность создавать собственных ботов, наделенных очень условным, но все же «искусственным» интеллектом. Любой программист, владеющий определенными познаниями, может обратиться к библиотеке метод API и создать приложение для Телеграм.

Особенности библиотеки API

Для начала стоит разобраться что такое АПИ и в чем его отличии от программы.

API или «A pplication P rogramming I nterface» — это своеобразная электронная библиотека. Массив данных в ней открыт для любого пользователя и имеет одно назначение — упростить жизнь разработчикам приложений, оказать помощь в создании качественного ПО или максимально персонализировать уже существующую разработку.


Если обратиться к истории информатики (очень давней), многие с удивлением узнают, что для создания работающего ПО программисты должны были знать машинный код. Позднее были разработаны «ассемблеры» — трансляторы текста команды в машинный код. Однако, на современном этапе развития технической мысли, даже это уже не очень актуально. Сегодня ни одному разработчику не придет в голову идея создавать ПО с нуля.

Вряд ли у любителя получится нарисовать красивую птицу, основываясь на инструкции приведенной ниже. Но именно, так можно описать процесс создания приложений с помощью «Интерфейса Программирования Приложений».


Разработчик, имея весьма поверхностные знания в области программирования, придумывает «скелет» программы и наполняет его уже готовыми наборами процедур, функций и методов.

Отличия Telegram API и Telegram Bot API

Telegram API — экономит не только время и ресурсы, затрачиваемые на создание приложения, но и упрощает процесс отладки и поиска ошибок (багов). Все команды в библиотеке стандартны и давно «обкатаны».

В списке готовых решений можно найти привычные кнопки и прочие объекты (окно сообщений, раздел чатов и так далее). Чтобы добавить очередной элемент в тело программы или заставить форму собрать некие данные, программисту достаточно написать лишь название процедуры, которая запустится с наступлением определенного условия. Таким образом можно создавать не только формы регистрации новых пользователей и различных ботов, но и мини — игры html.


Можно утверждать, что раздел Bot API позволяет программисту интегрировать созданный «искусственный интеллект» в систему Telegram. Телеграм АПИ — это гораздо более широкое понятие, которое включает в себя весь стандартный набор методов, правил и объектов для работы приложения.

Необходимые знания для работы с Telegram API

Итак, чтобы начать работать с API необходимо знать несколько важных нюансов.

  1. Все объекты в telegram API рассматриваются, как JSON-объекты. Если упрощенно, JSON — это способ обмена данными между пользовательским интерфейсом и сервисом, обрабатывающим запрос. В связи с этим, неплохо было бы знать основные принципы работы с JSON.
  2. Какой бы замечательной и полной ни была библиотека АПИ, совсем без знаний языков программирования не обойтись. Можно пользоваться и Delphi, и C++, и другими высокоуровневыми языками, но достаточно будет хороших познаний в PHP, HTML и Java.
  3. Прежде, чем начинать работу над своим проектом в Telegram, необходимо зарегистрироваться у «папы всех ботов». После процедуры @BotFather предоставит разработчику персональный токен (ключ доступа) для работы с Telegram API.

Возможности Ботов в Телеграм

Боты в Telegram могут исполнять множество функций от вполне привычной — развлечения пользователя забавной беседой или простенькой игрой в слова, до организации покупок в интернет магазинах.


Следующий перечень кратко описывает способности Telegram Bot:

  • мини игры, например, шашки, шахматы и пасьянсы;
  • возможность синхронизации с другими онлайн сервисами, с помощью Бота можно управлять умным домом или отправлять данные на другие устройства подключенные к глобальной сети;
  • Bot может служить как лента новостей, сообщать прогноз погоды или делать машинный перевод текстов с различных языков;
  • робот при должном «обучении» сможет подбирать собеседников из базы поиска, опираясь на общие интересы и предпочтения пользователей;
  • при богатой фантазии и наличии умений, Бота можно запрограммировать на что угодно, единственно что ему не по силам — это уборка дома.

Отличаются Роботы от реальных пользователей тем, что для их регистрации в сети не нужен номер телефона, они не могут сами начать диалог с собеседником. У Ботов отсутствует статус «онлайн/не в сети», просто на том основании, что они не едят, не спят и не занимаются решением личных проблем.

С какой стороны ни посмотри Робот — идеальный сотрудник Интернет магазинов, они не обижаются и не хамят. Для хранения Bot-ов в Telegram предусмотрен специальный сегмент памяти, история сообщений робота хранится ограниченное время, затем безвозвратно стирается из системы.

Если новичок только приходит в мессенджер Телеграм, то у него сразу возникает вопрос, как пользоваться или, даже, как зарегистрироваться на сервисе. Для этого понадобится номер мобильного телефона и одно из приложений для Телеграм, которое можно будет найти и скачать на любую платформу и операционную систему по адресу: https://www.telegram.org. После того, как все это проделано, мы получаем в сети нового пользователя Телеграм и потенциального клиента наших каналов, раскручиваемых с помощью сервиса ВТопе.

Telegram.me скачать или открыть для доступа в канал

По мере того, как новичок продолжает свой путь по Телеграм, ему открывается, постепенно, неведомый доселе мир различных каналов. Ссылки вида Telegram.me нужно скачать или открыть на своем устройстве, чтобы попасть в заинтересовавший канал. Там, в чат ленте с другими пользователями и служебными ботами, просматривая новости, картинки, видео, пользователь (теперь уже подписчик канала) будет временами видеть рекламные сообщения, на которых и зарабатывает данный канал. Конечно, каждый из нас хотел бы иметь такой канал, но не все знают как.

Telegram API на русском доступен даже для новичков

Создать свой бизнес в Телеграм сейчас не так сложно как раньше. Открытые Telegram API давно уже на русском языке и позволяют, с помощью шаблонов и конструкторов, создать свой канал ботов к нему даже не очень опытным программистам.
Самую тяжелую часть работы – накрутку подписчиков возьмет на себя сервис по накрутке ВТопе. Зачем нужны подписчики? Чем их больше, тем больше стоит рекламный пост и тем больше денег он принесет владельцу канала. Такие дела в мире Телеграм.