如何使用 Telegram Bot API 从电话号码获取 user_id

2024-01-07

我目前正在开发一个 Telegram 机器人,一旦你知道电话号码,它就能在 Telegram 中获取用户信息。主要目标是获取用户存储在 Telegram 中的所有用户信息,只需知道他/她的电话号码。

因此,我尝试使用 Telegram Bot API 中解释的 sendContact 函数,就像这篇文章一样:如何在电报中获取电话号码的user_id https://stackoverflow.com/questions/41686463/how-to-get-user-id-of-a-phone-number-in-telegram

问题是,如果我尝试将自己的号码作为联系人发送到我的 chat_id,我会收到联系人结构,但如果我从机器人向自己发送另一个电话号码(对应于另一个活跃的 Telegram 帐户),我会得到JSON 文件中没有 user_id。问题是我只能得到一个user_id,如果我使用chat_id帐户的phone_number,这意味着我无法获得任何使用他的电话号码的人的信息。但我已经看到了很多可能的解决方案,但没有一个对我有用。

任何帮助,将不胜感激!

我在用着: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 来接收消息和我的电话号码,它可以工作,但每当我使用另一个电话号码时,它就不行。


Bot API 无法给您 chat_id,您应该使用 Telegram 的 Core_API 来完成任务。 你应该使用类似下面的代码片段来获取用户的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 库,但它以某种方式演示了如何执行该过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Telegram Bot API 从电话号码获取 user_id 的相关文章

随机推荐