как получить user_id из номера телефона с помощью Telegram Bot API - PullRequest
0 голосов
/ 05 июля 2018

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

Итак, я попытался использовать функцию sendContact, как описано в API Telegram Bot, и вроде этого сообщения: Как получить user_id номера телефона в telegram

Проблема в том, что если я попытаюсь отправить свой собственный номер в качестве контакта на мой chat_id, я получу структуру Контакт, но если я отправлю от бота себе другой номер_фона (соответствующий другому активному аккаунту Telegram) Я не получаю user_id в файле JSON. Проблема в том, что я могу просто получить user_id, если я использую phone_number учетной записи chat_id, это означает, что я не могу получить информацию о ком-либо, используя его номер телефона. Но я видел много возможных решений, но ни одно из них не работает для меня.

Любая помощь будет оценена!

Я использую: https://api.telegram.org/bot<BOT TOKEN>/sendContact?chat_id=<MY CHAT ID>&phone_number=<PHONE_NUMBER I WANT TO KNOW USER_ID>&first_name=<RANDOM NAME>

Если для получения сообщения используется мой собственный chat_id, а мой phone_number - это работает, то при использовании другого phone_number - нет.

1 Ответ

0 голосов
/ 05 июля 2018

Bot API не может дать вам chat_id, вы должны использовать Core_API Telegram для выполнения задачи. вы должны использовать что-то вроде приведенного ниже фрагмента, чтобы получить chat_id пользователя:

contact = InputPhoneContact(client_id = 0, phone = phone, first_name="a", last_name="")
result = client(ImportContactsRequest([contact]))
usersDic = result.__dict__['users']
if(len(usersDic)>0):
    chatID = usersDic[0].__dict__["id"]

обратите внимание, что я использовал библиотеку Telethon в приведенном выше коде, но она как-то демонстрирует, как сделать процесс.

...