Я просто типичный член GROUP (и, следовательно, я не могу использовать там никаких ботов . ), Поэтому я не могу найти способ, как получить идентификатор GROUP.
T.Todua 31 Июл 2017 в 13:57
7 ответов
Лучший ответ
Если вы являетесь участником группы, вы должны получать updates из этой группы, когда в ней есть какие-либо действия. Обновления будут содержать chats элемент списка, из которого вы можете получить Channel , который имеет следующие соответствующие поля:
id: group_id, title: «the_group_title», username: «group_username»
Charles Okwuagwu 8 Авг 2017 в 13:32
Новое обновление
Просто переслать сообщение с вашего канала этому боту: (https://telegram.me/getidsbot)
Обновление
1: Перейти (https://web.telegram.org)
2. Перейдите в свой Gorup и найдите ссылку на Gorup (https://web.telegram.org / # / им ? р = g154513121 )
3: Скопируйте это число после g и поставьте (-) перед этим -154513121
4: Отправить сообщение в Gorup bot.sendMessage(-154513121, «Hi»)
Замена параметров в аккаунтах телеграм | ТЕЛЕГРАМ API ID И API HASH
Я проверил сейчас и работаю как шарм
Надеюсь, это поможет.
Sedric Heidarizarei 16 Дек 2018 в 08:56
Пригласите своего бота в свою группу
И используйте свой бот, чтобы текст / myid
Затем используйте API GetUpdates, у вас будет идентификатор вашей группы
Eddie Lim 14 Дек 2018 в 06:01
По моему опыту, есть две популярные библиотеки,
python-Telethon —>Telegram Client Library(uses api_id,api_hash) python-Telegram-bot —->Telegram Bot (uses api token)
Есть много способов получить user_id, group_id, channel_id. Чтобы получить эти идентификаторы, используйте клиентскую библиотеку Telethon
from telethon import TelegramClient,sync api_id=»xxx» #get from telegram website api_hash=»yyy» #get from telegram website client=TelegramClient(session_object,api_id,api_hash) client.start() #To get the channel_id,group_id,user_id for chat in client.get_dialogs(): print(‘name: ids: is_user: is_channel is_group:’.format(chat.name,chat.id,chat.is_user,chat.is_channel,chat.is_group))
Это все, что будет напечатано имя и идентификатор канала, группы, пользователя. Кроме того, он проверит, принадлежит ли идентификатор каналу, группе или пользователю.
Как правило, идентификатор канала начинается с отрицательного (например, -1001109500936), начинается с (-100) идентификатора группы в норме и начинается с отрицательного идентификатора пользователя, начинается с положительного
Другой способ — использовать приложение «плюс мессенджер». Просмотреть все группы, каналы, идентификаторы пользователей.
Еще один простой способ,
client=TelegramClient(session,api_id,api_hash) client.start() destination_entity_name=»Type User(may be bot) or group or channel name» entity=client.get_entity(destination_entity_name) print(entity.stringify()) #All paratmeters print(entity.id) #user(bot also considered as user) or group
Vintage Coder 28 Мар 2019 в 07:21
После нескольких часов я смог найти идентификатор группы с помощью CuteGram приложение.
Как получить API ключ (токен) телеграм для вашего бота?
Откройте там группу и нажмите значок «КОПИЯ», чтобы открыть папку, и в адресе вы увидите идентификатор.
T.Todua 9 Авг 2017 в 12:31
Существует неофициальный Plus Messenger клиент для пользователей Android, и вы можете увидеть идентификатор в информации о группе / канале.
Супергруппа и канал будут выглядеть как 1068773197 , то есть -1001068773197 для ботов (с префиксом -100 ).
Источник: question-it.com
Как найти Telegram app hash app id без разборки приложения.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.
Luxor
Administrator
Команда форума
Администратор
05.07.2019 854 1 343 93 rutube.ru
Что такое App hash app id телеграмм, я описал в этой статье — Что такое app hash/app id Telegram
А теперь мы поговорим, о том, как же найти уже отлежавшиеся, а порой и проверенные временем и другими пользователями не в спаме, параметрами.
- И так, идём на всеми любимый GItHub — ссылочка
- Регистрируемся, и переходим к строке поиска. Вбиваем в неё следующее «Telegram app hash app id»
- Переходим на вкладочку Code
Источник: blb.team
Реализация аутентификации в telegram-боте через OAuth2 на примере Box API
Возникла идея простого бота, который будет отправлять переданные ему файлы в облако. Однако для аутентификации сейчас практически везде используется OAuth2. Если в web-приложениях пользоваться OAuth2 все уже научились, то с telegram у меня возникли вопросы.
В этой заметке будет минимальный пример telegram-бота, который работает с box.com через API с аутентификацией через OAuth2.
disclaimer #1: В статье не будет подробного описания работы OAuth2 — только необходимый минимум информации для понимания процесса.
disclaimer #2: Для примера использую облачное хранилище box.com, так как именно в нём лежит моя библиотека электронных книг. При реализации аналогичной функциональности для других облаков проблем возникнуть не должно.
Какой сценарий с точки зрения пользователя получим в конце текущей статьи:
- Пользователь добавляет бота в telegram
- По команде /login пользователь получает ссылку на аутентификацию
- Пользователь переходит по ссылке в браузере на box.com
- Пользователь аутентифицируется на box.com
- Открывается страница бота https://t.me/?start= с предложением отправить ему сообщение по кнопке Send message
- Пользователь нажимает на кнопку Send message
- В telegram открывается диалог с ботом с активной кнопкой Start
- Пользователь нажимает на кнопку Start
- Бот отправляет пользователю его login в box.com
Добавить остальную функциональность — дело техники.
Необходимый минимум об OAuth2
Для реализация аутентификации через OAuth2 необходимо выполнить несколько пунктов:
- Получить client_id и client_secret в консоли разработчика box.com. Подробно процесс описан в приложении в конце статьи
- Сформировать ссылку для аутентификации пользователя https://account.box.com/api/oauth2/authorize?client_id=response_type=code . client_id и redirect_url необходимо скопировать из настроек созданного ранее приложения в консоли box.com
- На адресе redirect_url (по-умолчанию в этой статье — это localhost:8000 ) поднять веб-сервер, который сможет получить код для аутентификации в box.com
- С полученным в п.3 кодом и параметрами client_id и client_secret из п.1 обратиться к endpoint box.com API для получения access_token и refresh_token . access_token в дальнейшем необходимо добавлять во все запросы к API.
Реализация
Шаг 1. Подготовка
Для работы понадобятся три внешних библиотеки:
- python-telegram-bot — для работы с Telegram Bot API
- requests — для выполнения запросов к API
- boxsdk — для работы с API box.com
Библиотеки и их версии прописаны в requirements.txt. Установить всё через pip install -r requirements.txt — ничего необычного. Но лучше для этого создать отдельное виртуальное окружение.
Шаг 2. Продолжаем подготовку
Теперь надо получить токен для бота. Я уже писал об этом ранее.
Шаг 3. Веб-сервис для получения OAuth2-кода
Нужен простой веб-сервис. На URI этого веб-сервиса будет происходить перенаправление со страницы аутентификации box.com. Адрес перенаправления будет содержать параметр code в строке запроса. Этот код используется для получения access_token и refresh_token дальше.
Веб-сервис будет без использования внешних зависимостей. Реализован на встроенном simple http server. Код позаимоствован из gist, но немного модифицирован:
Использовать код выше в настоящем боевом production я бы, конечно, не стал, но для демонстрации идеи подойдёт.
Шаг 4. Минимально работающий бот
Простейший бот с использованием библиотеки python-telegram-bot выглядит так:
from telegram.ext import Updater from telegram.update import Update from telegram.ext.callbackcontext import CallbackContext from telegram.ext import CommandHandler token = ‘TG_BOT_TOKEN’ updater = Updater(token=token, use_context=True) dispatcher = updater.dispatcher def start(update: Update, context: CallbackContext): context.
bot.send_message(chat_id=update.effective_chat.id, text=»I’m a bot, please talk to me!») start_handler = CommandHandler(‘start’, start) dispatcher.add_handler(start_handler) updater.
start_polling()
Этот бот не делает ничего полезного — только отправляет сообщение «I’m a bot, please talk to me!» по команде /start .
Теперь надо добавить самое важное — аутентификацию через OAuth2.
Шаг 4.1. OAuth2-аутентификация
Для аутентификации необходимо перейти по сформированной особым образом ссылке: https://account.box.com/api/oauth2/authorize?client_id=response_type=code , где client_id и redirect_url параметры из настроек созданного ранее приложения в консоли разработчика box.com.
На этой странице будет стандартная форма логина в box.com .
После ввода логина и пароля произойдёт перенаправление на redirect_url . На этом адресе сервис, получив GET-запрос, вычленит из строки запроса code . После чего перенаправит запрос на страницу старта работы с telegram-ботом. В адрес будет добавлен полученный код. Далее должен открыться диалог с ботом с активной кнопкой Start . По клику на кнопку в обработчике команды /start можно будет получить переданный код.
Простейший код как proof of concept:
from telegram.ext import Updater from telegram.update import Update from telegram.ext.callbackcontext import CallbackContext from telegram.ext import CommandHandler import requests import json import boxsdk client_secret: str = ‘CLIENT_SECRET’ client_id: str = ‘CLIENT_ID’ redirect_url: str = ‘REDIRECT_URL’ token = ‘TG_BOT_TOKEN’ updater = Updater(token=token, use_context=True) dispatcher = updater.dispatcher # Обработчик команды /start def start(update: Update, context: CallbackContext): message_text: str = update.message.text # В deep linking параметры из url передаются в сообщении в виде строки «/start code», # где code — строка из url https://t.me/?start=code. message_parts: list[str] = message_text.split(‘ ‘) if len(message_parts) == 2: # Во втором элементе будет содержаться переданный код, # который необходим для получения access_token и refresh_token code: str = message_parts[1] # Формируем запрос к API box.com для получения access_token и refresh_token access_token_url = ‘https://api.box.com/oauth2/token’ headers = ‘Content-Type’: ‘application/x-www-form-urlencoded’> params = < ‘client_id’: client_id, ‘client_secret’: client_secret, ‘code’: code, ‘grant_type’: ‘authorization_code’ > req = requests.post(access_token_url, data=params, headers=headers) data = json.loads(req.text) # Полученный JSON содержит необходимые данные. # Используя их можно инициализировать клиент boxsdk # и начать обращаться к его API. oauth: boxsdk.OAuth2 = boxsdk.OAuth2( client_id, client_secret, access_token=data[‘access_token’], refresh_token=data[‘refresh_token’]) box_client = boxsdk.Client(oauth) # Например, можно получить информацию об аутентифицированном пользователе. user = box_client.user().get() context.bot.send_message(chat_id=update.effective_chat.id, text=user.login) else: show_welcome_message(update, context) # Обработчик команды /login def login(update: Update, context: CallbackContext): context.bot.send_message(chat_id=update.effective_chat.id, text=f’response_type=code»>Connect to Box.com’, parse_mode=’HTML’) def show_welcome_message(update: Update, context: CallbackContext): context.bot.send_message(chat_id=update.effective_chat.id, text=»I’m a bot, please talk to me!») start_handler = CommandHandler(‘start’, start) login_handler = CommandHandler(‘login’, login) dispatcher.add_handler(start_handler) dispatcher.add_handler(login_handler) updater.start_polling()
Что дальше
- Привести код бота в порядок: выделить классы, методы,
- Сделать конфигурирование бота более удобным,
- Реализовать загрузку файлов в облако.
О чём-то из этого постараюсь написать позже.
Исходники для этой заметки можно найти на github.
Приложение
Получить client_id и client_secret необходимо в консоли разработчика box.com:
- Cоздать новое приложение с типом Custom app
- В настройках приложения выбрать User Authentication (OAuth2) и указывать App Name
- В разделе Configuration созданного приложения:
- в секции OAuth 2.0 Credentials забрать client_id и client_secret ,
- в секции OAuth 2.0 Redirect URI указать localhost:8000 (или другой адрес, если есть понимание, что это и зачем)
- поставить галочку в чекбоксе Write all files and folders stored in Box
(в этой статье про это говорить не буду)
Если вам понравилась статья, то можете зайти в мой telegram-канал. В канал попадают небольшие заметки о Python, .NET, Go.
Источник: makesomecode.me