В чём разница между 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 июл 2023 в 10:08
320 1 1 серебряный знак 11 11 бронзовых знаков
Это не для ботов, а для аккаунтов обычных людей
20 июл 2023 в 10:11
20 июл 2023 в 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 июл 2023 в 10:19
@ArtemLP pyTelegramBotApi использует API для ботов, а pyrogram использует MTProto, который изначально создавался для пользовательских приложений (в частности, для официальных клиентов Telegram)
20 июл 2023 в 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 июл 2023 в 10:20
2,327 1 1 золотой знак 5 5 серебряных знаков 29 29 бронзовых знаков
- python
- telegram-bot
- pyrogram
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Парсим и определяем тональность сообщений в Telegram
До начала работы с API Telegram необходимо получить собственный API ID и Hash. Это можно сделать пройдя по ссылке https://my.telegram.org/auth?to=apps, указав номер телефона привязанный к профилю, и заполнив App title и Short name. Platform — можно выбрать “Other (specify in description)”. Остальные параметры можно оставить пустыми.
После того как все шаги выполнены вы получите собственные API ID и Hash.
Важно: В Telegram в настройках конфиденциальности должна быть отключена двухэтапная аутентификация.
Шаг 2. Вход в аккаунт Telegram.
Теперь переходим в Google Colab и первым делом устанавливаем библиотеку telethon:
pip install telethon
Для начала работы нам понадобятся две библиотеки: pandas и TelegramClient:
import pandas as pd from telethon.sync import TelegramClient
После того, как библиотеки установлены подключаемся к Telegram с помощью полученных ранее API ID и Hash:
api_id = Ваш API ID api_hash = 'Ваш Hash' phone = 'ваш номер телефона, привязанный к профилю' client = TelegramClient(phone, api_id, api_hash) await client.start() print(await client.get_me())
Если данные введены корректно, Google Colab запросит ваш телефон. Вводить телефон надо с 8 (не с +7).
После ввода телефона Telegram пришлет код подтверждения. Этот код используется для входа в ваш аккаунт в Telegram. Введите полученный код в ячейку с запросом.
Если все верно, Telegram пришлет сообщение, что вход выполнен.
Шаг 3. Парсим группу.
Создадим переменную адресом чата (начинается с https://t.me/….), сообщения из которого хотим спарсить (адрес можно посмотреть в Group info )
chat = 'адрес чата'
Если есть необходимость, можно посмотреть участников группы. Для этого создадим пустой список, в который спарсим данные участников группы и затем создадим датафрейм, для более удобного анализа:
data_item = [] part_item = await client.get_participants(chat) for item in part_item: data_item.append([item.first_name, item.last_name, item.id]) df = pd.DataFrame(data_item, columns=['first_name', 'last_name', 'id']) df
Однако нас интересуют сообщения участников группы. Шаги выполнения те же, что при парсинге участников группы, за единственным исключением — необходимо установить количество сообщений, которые хотим загрузить. Например, limit=100 позволяет выгрузить последние 100 сообщений. Если есть необходимость выгрузить все сообщения, limit=100 можно просто убрать.
data_message = [] part_mes= await client.get_messages(chat, limit=100) for message in part_mes: data_message.append([message.sender_id, message.text]) df_message = pd.DataFrame(data_message, columns=['user_id', 'text']) df_message
При желании полученный датафрейм можно сохранить в формате csv:
df_message.to_csv('message.csv')
Чтобы, при желании, загружать уже готовые данные в любое удобное время:
df_op = pd.read_csv('message.csv', encoding="UTF-8")
Шаг 4. Определяем тональность сообщений.
Для начала необходимо установить transformers:
!pip install transformers
from transformers import pipeline
Создаем пайплайн для обработки естественного языка:
model=pipeline("sentiment-analysis", "blanchefort/rubert-base-cased-sentiment")
Создаем копию датафрейма:
df_model = df_message.copy()
Используем пайплайн для определения тональности текста:
lst = [] for i in df_model["text"]: lst.append(model(str(i))[0]["label"]) df_model["Sentinent"]=pd.DataFrame(lst) df_model
Теперь (к примеру) можно посмотреть отдельно негативные сообщения и какой id из оставил:
df_NEGATIVE = df_model[df_model["Sentinent"]=="NEGATIVE"] df_NEGATIVE
или позитивные сообщения:
df_POSITIVE = df_model[df_model["Sentinent"]=="POSITIVE"] df_POSITIVE
Как узнать свой api id 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, а так же можете почистить кеш и куки браузера.
Если все пройдет хорошо, то Вы увидите страницу похожую на скриншот ниже!
Как узнать ID Telegram

Telegram user ID — это цифровой код, который присваивается каждому аккаунту при регистрации. Этот идентификатор нужен системе, чтобы корректно сохранять данные и связывать их с конкретным юзером. Найти ID своего аккаунта или другого чата в меню мессенджера не получиться. К сожалению, такая возможность разработчиками не предусмотрена. Но есть другие способы, как узнать айди. О них мы поговорим в этой статье.
Для чего нужен Telegram user ID?
Многие пользователи знают, что в Телеграм можно устанавливать собственный идентификатор. Это дает возможность находить друг друга и общаться без обмена телефонными номерами. Каждый можете придумать себе имя пользователя, так как оно доступно для редактирования и просмотра в разделе «Настройки». Там же можно сделать ссылку для быстрого перехода в чат.
Telegram ID – это тоже идентификатор, но не для людей, а для системы. Он присваивается профилю пользователя, чату, группе и каналу в момент их создания. ID позволяет образовывать связи между:
- аккаунтами и используемыми ими ботами;
- юзерами и группами, в которые они вступают;
- пользователями.
Таким образом, ID в Телеграм отвечает за корректное взаимодействие профилей в сети. Он играет важную роль при пересылке сообщений, загрузке историй переписок, возможности добавлять кого-то или добавляться самому в чат или группу и так далее. В отличие от имени пользователя ID состоит полностью из цифр, изменить его нельзя. При этом он недоступен для просмотра через меню настроек.
Как узнать свой ID Telegram?

В Telegram создано множество ботов с этой целью, но далеко не все из них работают корректно. Мы рекомендуем использовать бот @getmyid_bot. Из его преимуществ можно выделить исправное функционирование и быструю выдачу результатов. Чтобы узнать свой ID, следуйте пошаговой инструкции:
- Зайдите в поисковую строку приложения и введите @getmyid_bot.
- В выдаче найдите бота, который полностью совпадает с указанным выше именем.
- Нажмите на него, чтобы открыть диалоговое окно.
- Кликните на кнопку «Начать», чтобы запустить работу бота.
- В ответном сообщении сразу же отобразится ваш ID. Смотрите первую строку, которая начинается со слов «Your user». Во второй строчке показывается идентификатор диалога с ботом.
Помимо этого можно использовать бот @userinfobot. Он дополнительно высылает фамилию и имя, с помощью которых можно убедиться в правильности данных.
Как узнать ID другого пользователя в Telegram?
Это не сложнее, чем узнать ID своего аккаунта. Для примера будем использовать тот же бот − @getmyid_bot. Он является универсальным и позволяет проверить не только свои данные, но и узнать информацию о других юзерах. Для этого следуйте пошаговой инструкции:
- Ищем и запускаем бот, как в пункте выше.
- Переходим к списку контактов и открываем диалог с человеком, идентификатор которого нужно вычислить.
- Выбираем любое полученное сообщение из переписки и жмем на «Переслать».
- Адресатом назначаем пользователя @getmyid_bot и нажимает «Отправить».
- В диалоговом окне появятся три строки. Что означают первые две, вы уже знаете, а третья, которая начинается со слов «Forwarded from» − это и есть идентификатор вашего собеседника.
Если у вас стабильное подключение к интернету, то ответ поступит менее чем через секунду. В ином случае на получение информации может уйти больше времени.
Как узнать ID чата Telegram?

В этом случае инструменты, которые упоминались выше, не подойдут. Они могут предоставить только идентификационные данные конкретного человека, пославшего сообщение в личный или публичный чат. Чтобы получить ID Telegram публичного чата или группы, воспользуйтесь ботом @username_to_id_bot. Пошаговая инструкция:
- Ищем @username_to_id_bot через поисковую строку Telegram.
- Запускаем бот нажатием кнопки «Начать».
- Заходим в чат или группу, информацию о которой хотим узнать.
- Копируем ссылку на чат. Её можно найти в настройках чата/группы при нажатии на кнопку «Пригласить». Ссылка будет находиться в верхней части открывшегося окна.
- Далее возвращаемся к нашему боту и отправляем ему скопированную ранее ссылку.
- В ответном сообщении получаем основные данные о чате/группе. В нижней строке будет ID.
Как видите, узнать ID Telegram совсем несложно. Если следовать приведенным здесь пошаговым инструкциям, то у вас обязательно все получится. Удачи!