Создание своего клиента Telegram
Все разработчики могут использовать API и исходный код Telegram, чтобы бесплатно создавать похожие приложения на этой платформе.
Примечание
В целях обеспечения совместимости и безопасности в экосистеме, все сторонние клиенты должны соответствовать Условиям использования API.
Получение api_id
Для получения API id и возможности разработать собственный клиент на основе Telegram API нужно сделать следующее:
- Зарегистрироваться в Telegram, используя любой клиент.
- Авторизоваться в Telegram по ссылке: https://my.telegram.org.
- Перейти по ссылке ‘API development tools’ и заполнить форму.
- Будут получены адреса и параметры api_id и api_hash, необходимые для авторизации пользователя.
- На данный момент к любому номеру может быть привязан только один api_id.
Важные оповещения для разработчиков будут присылаться по указанному телефону, поэтому рекомендуется использовать актуальный номер, к которому привязан активный аккаунт Telegram.
Использование открытого исходного кода Telegram
Открытый исходный код Telegram доступен для всех. К нему также прилагается пример API id, использование которого ограничено и возможно лишь для серверной части. Его нельзя применять в приложениях для конечного пользователя – попытки использовать этот API id для любых целей, кроме тестирования, вызовут ошибку API_ID_PUBLISHED_FLOOD на стороне пользователей. Поэтому перед выпуском клиента необходимо получить собственный API id.
Примечание
Для соответствия лицензии GNU GPL разработчику также необходимо выложить в открытый доступ исходный код своего приложения.
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
Как узнать свой api telegram
Как получить API Id и API Hash?
Для получения API id и возможности разработать собственный клиент на основе Telegram API нужно сделать следующее:
- Сначала перейдите на my.telegram.org
- В поле Your Phone Number введите Ваш номер телефона (можете попробовать номер телефона Вашего фейк-аккаунта) и нажмите Next. На этот номер будет отправлено сообщение в Телеграм, который нам понадобится в следующем пункте.
3.После этого у Вас появится поле Confirmation code. В это поле Вам необходимо вставить код, который Вы получите в приложении Telegram На телефоне или компьютере и нажать на кнопку Sign In.
4.Далее нажимем на ссылку «API development tools»
5.Вам предложат создать новое приложение.
Заполняем поля по примеру:
App title: Любое название на английском языке
Shortname: Любая строчка на английском языке без пробелов! Длина от 5 до 32 символа
Url: Ссылка на любой сайт, который не является популярным
Platform: Desktop
Description: Придумайте любое описание
Нажимаем «Create application»
Если на этом этапе Вы увидите окно с надписью «ERROR«, попробуйте отключить в Вашем браузере плагины-блокировщики рекламы или блокировщики сторонних файлов Cookie, а так же можете почистить кеш и куки браузера.
Если все пройдет хорошо, то Вы увидите страницу похожую на скриншот ниже!
Руководство администратора
С помощью смарт-действия «Отправить HTTP-запрос» можно автоматизировать общение через бот мессенджера Telegram.
1. Если вы еще не зарегистрированы в Telegram, пройдите регистрацию.
2. Получите идентификатор нового бота : обратитесь к боту @BotFather c требованием создать нового бота (команда /newbot ).
3. Получите идентификатор беседы с ботом :
• Откройте диалог со своим созданным ботом и напишите ему произвольное сообщение,
• Откройте в браузере ссылку
где — идентификатор, полученный от @BotFather,
• В полученном json-ответе найдите значение в параметре result->message->chat->id , это и есть .
URL для отправки сообщения боту формируется по образцу:
https://api.telegram.org/bot < bot_token >/sendMessage?chat_id= < chat_id >&text=
URL для получения последнего сообщения от бота формируется по образцу:
Если возвращается одно сообщение, то json имеет вид:
Чат-бот может вернуть сразу несколько последних ответов — json вида:
Первое непрочитанное ответное сообщение доступно как значение атрибута result.message[0].text , а доступен как значение атрибута result.message[0].chat.id (этот параметр важен, поскольку бот может вести несколько чатов одновременно).
Простейший пример обмена сообщениями с чат-ботом Telegram описан ниже.
Смарт-пакет для отправки сообщения боту.
Смарт-действие для отправки сообщения боту.
Вариант смарт-действия для отправки сообщения боту с использованием двух параметров:
Вариант смарт-действия для отправки сообщения боту с использованием двух параметров.
Для данного кейса не поддерживаются зашифрованные задачи
Смарт-пакет для работы с курсом валюты в формате JSON.
Обратите внимание на необходимость очистки ответа веб-сервиса от лишних символов, эти объяснения даны здесь. Поэтому во втором смарт-действии для выделения текста сообщения используется выражение TSQL:
select top 1 JSON_VALUE ( @ActionResult8639, ‘$.HttpResponse.ResponseContent.result[0].message.text’ )
В чём разница между API token и API id, hash?
Пытаюсь написать своего телеграм-бота через библиотеку pyrogram. Для того чтобы подключиться к боту и управлять им, необходимо предоставить API token, API id и API hash, как показано ниже (пример взят отсюда):
from pyrogram import Client api_id = 12345 api_hash = "0123456789abcdef0123456789abcdef" app = Client("my_account", api_id=api_id, api_hash=api_hash) app.run()
Если токен понятно откуда брать и зачем он нужен, то вот c id и hash возникают затруднения. Откуда их брать я узнал в интернете. А вот зачем они нужны, для чего используются? Если это какие-то артефакты моего телеграм бота, почему они сразу не выдаются с токеном?
Отслеживать
задан 20 июл в 10:08
300 1 1 серебряный знак 10 10 бронзовых знаков
Это не для ботов, а для аккаунтов обычных людей
20 июл в 10:11
20 июл в 10:12
gord1402, там написано всего одно предложение: Bot tokens replace the users’ phone numbers only — you still need to configure a Telegram API key with Pyrogram, even when using bots. — из чего я пытаюсь догадаться, что api hash, id — это инструмент аутентификации бота. Но почему тогда в pyTelegramBotApi (pypi.org/project/pyTelegramBotAPI) используется только токен, почему там не нужна эта аутентификация?
20 июл в 10:19
@ArtemLP pyTelegramBotApi использует API для ботов, а pyrogram использует MTProto, который изначально создавался для пользовательских приложений (в частности, для официальных клиентов Telegram)
20 июл в 10:25
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В контексте API token я буду понимать Telegram Bot API .
Когда вы создаете бота на платформе Telegram , вы получаете уникальный API token , который является основным инструментом для взаимодействия с API и управления ботом. API token предоставляет доступ к различным методам Telegram Bot API , таким как отправка сообщений, получение обновлений и управление настройками бота. Обычно он передается в HTTP-запросах или используется в библиотеках и SDK для идентификации бота и обеспечения безопасности при вызове API методов.
Pyrogram в свою очередь использует немного другой метод взаимодействия, через MTProto API — это такая штука которая предоставляет возможность разработчикам создавать приложения сторонних разработчиков, которые могут взаимодействовать с Telegram, но он используется не для создания ботов, а для создания клиентских приложений, которые могут работать с Telegram на уровне пользовательского интерфейса. API hash необходим для подтверждения легитимности вашего приложения и безопасности обмена данных между приложением и серверами Telegram.
Чтобы вы не потерялись, я дам вам ссылку для конфигурации собственного приложения Telegram, там же можно и сформировать Api_id и Api_hash https://core.telegram.org/api/obtaining_api_id
Отслеживать
ответ дан 20 июл в 10:20
2,291 1 1 золотой знак 4 4 серебряных знака 28 28 бронзовых знаков
- python
- telegram-bot
- pyrogram
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.