что такое api id api hash в телеграмм

Создание своего клиента Telegram

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

В целях обеспечения совместимости и безопасности в экосистеме, все сторонние клиенты должны соответствовать Условиям использования API.

Получение api_id

Для получения API id и возможности разработать собственный клиент на основе Telegram API нужно сделать следующее:

Важные оповещения для разработчиков будут присылаться по указанному телефону, поэтому рекомендуется использовать актуальный номер, к которому привязан активный аккаунт Telegram.

Использование открытого исходного кода Telegram

Открытый исходный код Telegram доступен для всех. К нему также прилагается пример API id, использование которого ограничено и возможно лишь для серверной части. Его нельзя применять в приложениях для конечного пользователя – попытки использовать этот API id для любых целей, кроме тестирования, вызовут ошибку API_ID_PUBLISHED_FLOOD на стороне пользователей. Поэтому перед выпуском клиента необходимо получить собственный API id.

Для соответствия лицензии GNU GPL разработчику также необходимо выложить в открытый доступ исходный код своего приложения.

Сайт про Telegram на русском (неофициальный).

Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.

Источник

Подслушиваем чат телеграма с помощью своего клиента

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

Для этого в телеграме есть боты. На Хабре есть несколько статей, посвященных ботам, например: «Чат-помощник на сайт».

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

Но, как говорится, правильно поставленный вопрос — половина ответа.

Оказывается кроме «API telegram bot» существует еще и «API telegram client», т.е. API для создания собственных клиентов.

Клиент также может посылать и читать сообщения, но только от зарегестрированного (привязанного к телефону) пользователя, что мне как раз подходит (я уже зарегестрирован в чате).

На сайте телеграма есть список API для разных платформ: https://telegram.org/apps#source-code

Однако, самой простой в использовании оказалась библиотека на python: Pure Python 3 MTProto API Telegram client library под названием «telethon»

Только вот проблема. Я не знаю питон. Ну что ж, есть повод познакомиться.
Как утверждает мануал по телетону, инсталляция его очень простая. Достаточно запустить команду в командной строке:

Подводные камни, встреченные мною при инсталляции:

Все установилось. Листаем readme.txt дальше.

Следущим пунктом идет создание клиента телеграма… Как, уже? Ну да, все просто. Правда, сперва нужно зарегистритровать себя как создателя клиента.

Заходим на сайт телеграма: https://my.telegram.org
Вводим телефон и ждем код подтверждения на родном клиенте телеграма. Он довольно длинный (12 символов) и неудобный для ввода.

Заходим в пункт «API». Ищем «Telegram API» и заходим в «Creating an application» (https://my.telegram.org/apps).

Заполняем поля App title и Short name, нажимаем «Create application» и запоминаем две переменные: api_id и api_hash.

Пришла пора делать клиента.

session_name — можно вставить любое имя. Вас попросят ввести телефон и пришлют код подтверждения. После этого клиент будет работать без запроса телефона (до тех пор, пока не поменяете session_name). Рядом с вашей программой появится файл session_name.session

Если ошибок нет, клиент готов. Только вот, ничего не выводит. Попробуем получить полезную инфорфмацию.

Узнаем немного о себе:

результат выдается в виде:

Можем послать сообщение от себя:

Как меня видят другие:

Смотрим, на какие чаты мы подписаны:

читаем все сообщения чата «chat_name» (осторожно, сообщений может быть очень много)

просмотр всех пользователей чата

Побаловались?
Теперь, собственно, делаем то, ради чего мы все это затеяли.

Нам нужна программка, следящая за новыми сообщениями в определенном канале.

Чтобы клиент не заканчивал работу, после client.start() вставляем строку:

Эта конструкция (вставляется перед client.start()) выводит только новые сообщения:

создает событие, срабатывающее при появлении нового сообщения

выводит сообщение в таком виде:

Из всего этого нам нужно поле: «message=’hello telegram'»:

Сообщение получили, но от кого оно, непонятно, т.к. в сообщение только ID пользователя. Чтобы сопоставить ID и имя пользователя, скачиваем всех пользователей чата и помещаем их в словарь (хэш) в виде d[id]=»first_name last_name»

Теперь мы можем узнать, кто послал сообщение:

В принципе, можно получить имя пользователя из телеграма напрямую, но если пользователей немного, проще со словарем.

Вытаскиваем из сообщения дату отправки:

Все, все данные у нас есть. Осталось записать их в файл.
Для этого сначала откроем файл на запись:

И запишем сообщение:

Вот и все! Все, что мне было нужно, программка делает. Утилитка, конечно, сыровата, но свою задачу выполняет.

Python оказался не таким уж и сложным как его малюют, тем более описание и разных библиотек в интернете полным-полно. Написать еще пару утилиток и привыкнув к нему, можно использовать его как скриптовый язык вместо bash.

Источник

Инструменты сайта

Боковая панель

Работа с сообщениями

Аудитория

Инвайтинг

Накрутка

Репорты

Клоннер

Настройки

Один из вариантов авторизации

Переносим существующие аккаунты в софт

Итак, запускаем графическую версию софта и переходим в Настройки > Основные

Прокручиваем страницу вниз и видим нечто подобное (данные могут отличаться): что такое api id api hash в телеграмм

Указываем новые значения:

И жмем на кнопку «Сохранить» что такое api id api hash в телеграмм

На этом все. Дальше можно не читать и идти авторизовать свои аккаунты, без банов как минимум ближайшие недели, а то и месяцы после момента написания данной статьи.

Для этого переходим в раздел «Регистрация» > Режим регистрации «Ручной» и жмем на кнопку «Начать».
Далее вводим номер телефона, получаем код там, где ваш аккаунт авторизован и вводим. Готово, аккаунт в софте.

Как только Telegram придумает какой-нибудь новый «фильтр» — способ может перестать работать (временно). А может и не перестать ¯\_(ツ)_/¯

Разберем некоторые из пунктов новых настроек:

это «пара» (APP_ID + APP_HASH) от официального Telegram Web. Регистрировать аккаунты на данную пару не получится, так как в самом Telegram Web это не предусмотрено, а вот авторизовать уже существующие — можно, чем мы и воспользуемся.

Так как доступ к Telegram Web осуществляется через браузер, то указывать нужно не какой-то определенный девайс, типа «PC», а User-agent браузера. Пример: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

— не будем заострять внимание.

Где и как все это отображается?

Берем аккаунт, который мы уже перенесли в софт данным способом, авторизуем его в Telegram Desktop, идем в Настройки > Конфиденциальность > Активные сеансы:

что такое api id api hash в телеграмм

Источник

Пишем простой граббер для Telegram чатов на Python

что такое api id api hash в телеграмм

Leo Matyushkin

что такое api id api hash в телеграмм

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

Для указанных задач будет использоваться Python не ниже версии 3.5, а также высокоуровневая библиотека для работы с Telegram API – Telethon. Установить библиотеку можно с помощью менеджера пакетов pip :

Регистрируем в Telegram новое приложение

что такое api id api hash в телеграмм

Вводим пришедший в Telegram численно-буквенный код и попадаем на страницу регистрации нового приложения. Заполняем форму, достаточно первых двух граф:

что такое api id api hash в телеграмм

В результате попадаем на страницу конфигурации приложения. Находим оба параметра, а также доступные MTProto-сервера и открытые (публичные) ключи.

Избегая проблем с безопасностью, сохраняем учетные данные в отдельном файле config.ini следующей структуры:

Создаем клиент Telegram

Начнем с импорта библиотек.

Встроенные модули configparser и json применяем соответственно для чтения параметров и вывода данных. Из библиотеки Telethon импортируем класс клиента Telegram и класс исключений. Внутренний модуль connection необходим при использовании прокси-сервера. Остальные элементы модуля telethon.tl используются для запросов необходимых нам списков (участников канала/чата и их сообщений).

Теперь считаем учетные данные из config.ini :

Создадим объект клиента Telegram API:

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

Для сбора, обработки и сохранения информации мы создадим две функции:

Касательно написания вызова функций стоит оговориться, что Telethon является асинхронной библиотекой. Поэтому в коде используются операторы async и await. В связи с этим функция main полностью будет выглядеть так:

Заметим, что из-за асинхронности Telethon может некорректно работать в средах, использующих те же подходы (Anaconda, Spyder, Jupyter).

Собираем данные об участниках

Telegram не выводит все запрашиваемые данные за один раз, а выдает их в пакетном режиме, по 100 записей за каждый запрос.

Самый простой способ сохранить собранные данные в структурированном виде – воспользоваться форматом JSON. Базы данных, такие как MySQL, MongoDB и т. д., стоит рассматривать лишь для очень популярных каналов и большого количества сохраняемой информации. Либо если вы планируете такое расширение в будущем.

В JSON-файле можно хранить и всю информацию о каждом пользователе, но обычно достаточно лишь нескольких параметров. Покажем на примере, как ограничиться набором определенных данных:

Собираем сообщения

Ситуация со сбором сообщений идентична сбору сведений о пользователях. Отличия сводятся к трем пунктам:

Таким образом, с помощью Python и Telethon мы написали скрипт, собирающий и сохраняющий данные и реплики участников сообществ Telegram.

Источник

Creating your Telegram Application

We welcome all developers to use our API and source code to create Telegram-like messaging applications on our platform free of charge.

In order to ensure consistency and security across the Telegram ecosystem, all third-party client apps must comply with the API Terms of Service.

In order to obtain an API id and develop your own application using the Telegram API you need to do the following:

We will be sending important developer notifications to the phone number that you use in this process, so please use an up-to-date number connected to your active Telegram account.

Before using the MTProto Telegram API, please note that all API client libraries are strictly monitored to prevent abuse.

If you use the Telegram API for flooding, spamming, faking subscriber and view counters of channels, you will be banned forever.

Due to excessive abuse of the Telegram API, all accounts that sign up or log in using unofficial Telegram API clients are automatically put under observation to avoid violations of the Terms of Service.

If you didn’t violate the Terms of Service but your account does get banned after using the API, write to recover@telegram.org explaining what you intend to do with the API, asking to unban your account.
Please note that emails are checked by a human, so automatically generated emails will be detected and banned.

Everyone is welcome to use our open source code. We have included a sample API id with the code. This API id is limited on the server side and is not suitable for apps released to end-users — using it for anything but testing purposes will result in the API_ID_PUBLISHED_FLOOD error for your users. It is necessary that you obtain your own API id before you publish your app.

Please remember to publish your code as well in order to comply with the GNU GPL licences.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *