Я пытаюсь найти Api Key для Telegram, но я не могу его найти. Где я могу найти его на веб-сайте? Если я использую Api Id, я получаю ошибку » Incorrect Token Format в приложении консоли С#.
спросил(а) 2017-04-08T11:28:00+03:00 6 лет, 5 месяцев назад
добавить комментарий
пожаловаться
В специальном официальном боте: https://telegram.me/BotFather Дополнительная информация на официальной странице часто задаваемых вопросов о телеграмме: https://core.telegram.org/bots/faq#how-do-i-create-a-bot
ответил(а) 2017-04-08T13:53:00+03:00 6 лет, 5 месяцев назад
добавить комментарий
пожаловаться
Вы имеете в виду Telegram API для создания приложения Telegram с использованием С#, а не Telegram Bot API, верно? получить ключ API. Пожалуйста, смотрите шаг за шагом ниже или для получения подробной информации вы можете увидеть эту ссылку Зарегистрируйтесь в Telegram, используя любое приложение. Войдите в свое ядро Telegram: https://my.telegram.org. Перейдите к » Инструменты разработки API и заполните форму. Вы получите основные адреса, а также параметры api_id и api_hash, необходимые для
В этой серии статей мы с Вами рассмотрим как написать свой отдельный клиент Telegram, который будет собирать данные из интересных нам чатов, а также посмотрим, как сохранять эти сведения в свою базу данных.
Как получить Api Id и Api Hash телеграмм
Для создания отдельного клиента хорошо подойдет асинхронная библиотека «Telethon» (Вот репозиторий библиотеки). Сама библиотека может использоваться как для создания телеграм-ботов, так и для создания отдельных приложений работающих с API Telegram. Главным преимуществом является понятная документация в которой можно найти ответы на все вопросы (необходимо знание английского языка).
Создание нашего проекта начнем с регистрации аккаунта разработчика здесь
Вводим пришедший в Telegram численно-буквенный код и попадаем на страницу регистрации нового приложения. Заполняем форму, достаточно первых двух граф:
Если все введено верно вы увидите следующие сведения.
Сразу оговорюсь, данных будет немного больше, но нам важны параметры App api_id и App api_hash.
Поздравляю! Вы зарегистрировали ваше приложение в API Telegram. Закрывать страничку пока не стоит. Мы будем брать оттуда значения App api_id, App api_hash, Short_name для нашего приложения.
Переходим в PyCharm
Хорошим тоном будет не хранить в коде наш хэш и app_id, поэтому давайте сделаем красиво =) Используем библиотеку configparser для создания файла настроек. Создайте в корне проекта файл с расширением .ini (пример config.ini) и давайте поместим туда наши данные из аккаунта разработчика который мы зарегистрировали.
И да, я знаю про venv и переменные окружения. Вы можете использовать удобный вам метод.
Далее нас ждет самое интересное. Давайте установим в наш проект саму библиотеку Telethon командой «pip install telethon» и импортируем в проект класс TelegramClient из нашей установленной библиотеки.
import configparser from telethon import TelegramClient
Далее давайте настроим передачу наших данных в подключение из файла настроек
config = configparser.ConfigParser() config.read(«config.ini») # Присваиваем значения внутренним переменным api_id: str = config[‘Telegram’][‘api_id’] api_hash = config[‘Telegram’][‘api_hash’] username = config[‘Telegram’][‘username’] client = TelegramClient(username, api_id, api_hash) client.start()
Обратите внимание что в файле «config.ini» первой строкой мы указали [Telegram]. С помощью этих тэгов мы просто не будем путаться в переменных настроек и разделять их в одном файле.
Создадим нашу главную функцию и запросим у сервера телеграм сведения о нас.
async def main(): about_me = await client.get_entity(‘me’) print(about_me)
Наша библиотека Telethon асинхронная а значит функции и методы мы будем использовать с добавлением ключевых слов async и await (кстати можно и без них но не рекомендую)
Для того, что бы наш клиент не закрывался после запуска мы добавим в конце нашего файла такую запись
with client: client.loop.run_until_complete(main())
Первый запуск
При первом запуске в консоли PyCharm вас попросит ввести ваш номер телефона или токен бота
Это нужно, что бы создать файл сессии он будет хранится в корне проекта с расширением .session ( удалять их не стоит о них поговорим позднее)
Вводите ваш номер телефона в международном формате без «+»
Вам снова пришел код в аккаунт телеграмм только теперь из 5 цифр. Введите их.
Поздравляю вы запустили ваш клиент Телеграм.
Так что же вернула нам наша функция main
about_me = await client.get_entity(‘me’)
наша переменная about_me теперь содержит объект User с специфическим типом данных библиотеки telethon.
Внутри объекта вы можете увидеть данные о вашем аккаунте.
Для того, что бы посмотреть отдельные сведения давайте сделаем вот такой код
async def main(): about_me = await client.get_entity(‘me’) print(‘Имя:’, about_me.first_name) print(‘Ник:’, about_me.username) print(‘Id’, about_me.id) print(‘Телефон’, about_me.phone)
Ну в вашем случае звездочек не будет.
Только что сервер Телеграм рассказал вам о вас чуть больше чем вы видите в своем аккаунте. В следующей статье мы немного обнаглеем и соберем с серверов Телеграм сведения об участниках какого-нибудь чата.
Утечка данных из Telegram — проблема Telegram.
прим. автора
Все сведения которые мы будем получать являются общедоступными. И эти же сведения мы можем увидеть и через официальное приложение. Но я все-таки призываю Вас не использовать полученные знания в плохих целях. Вся изложенная информация подается с целью образования и популяризации языка программирования, его библиотек и возможностей.
Полный код парсера Телеграм
import configparser from telethon import TelegramClient config = configparser.ConfigParser() config.read(«config.ini») # Присваиваем значения внутренним переменным api_id: str = config[‘Telegram’][‘api_id’] api_hash = config[‘Telegram’][‘api_hash’] username = config[‘Telegram’][‘username’] client = TelegramClient(username, api_id, api_hash) client.start() async def main(): about_me = await client.get_entity(‘me’) print(‘Имя:’, about_me.first_name) print(‘Ник:’, about_me.username) print(‘Id’, about_me.id) print(‘Телефон’, about_me.phone) with client: client.loop.run_until_complete(main())
Подпишитесь на рассылку
Источник: happypython.ru