当前位置:  开发笔记 > 运维 > 正文

如何在电报中获取电话号码的user_id

如何解决《如何在电报中获取电话号码的user_id》经验,为你挑选了1个好方法。

我正在创建一个机器人来向Telegram中的多个联系人发送消息.用户可以与机器人分享联系.然后我使用getUpdates并获取电话号码.要使用sendMessage方法,我需要chat_id.现在如何用他的电话号码获取用户的chat_id?有没有比这种方法更好的方法呢?



1> علیرضا..:

要让互联网服务保持活力,他们需要与任何类型的垃圾邮件作斗争.结果,Telegram机器人无法开始向尚未开始使用机器人的用户发送消息!

只有当用户开始使用机器人时,您才能看到他/她chat_id并向他发送消息.

话虽这么说,如果用户(用户A)向您发送contact另一个用户的详细信息(让我们称之为用户B),您可以看到user_id用户B.但是您仍然无法直接发送任何消息,除非他/她之前也开始使用机器人.

此行为允许我们通过电话号码进行解决方法和查询用户,或者至少在需要时确认用户的电话号码.

为此,首先需要创建contact消息.谁发布消息并不重要,甚至机器人也可以发送消息.我们的想法是让电报填补了user_id新的contact消息.您可以在此处阅读此对象:联系对象

我们需要使用的方法是sendContact,它需要一个target chat_id,a first_name和a phone_number.现在first_name可以是任何字符串,其值与进程无关.此外,chat_id可以识别任何用户与机器人的聊天,甚至是你的.例如,它也可以是机器人的名称,其中机器人是具有写访问权限的管理员@my_private_bot_channel.简而言之,机器人可以发布消息的任何地方.所以你只需要提供phone_number.

发送消息后,您将收到服务器响应以及机器人刚刚发布的消息.contact这个新创建的消息的字段包含有关您刚刚分享其联系人的用户的信息,可能还有他/她的电报user_id,这与用户的聊天ID相同.

之后,您可以使用deleteMessage方法删除邮件.

以下是以普通请求/响应格式执行此操作的示例,但您应该使用以下框架:

https://api.telegram.org/{BOT_TOKEN}/sendContact?chat_id=123456789&phone_number=+989123456789&first_name=Some+Random+String

对此请求的回复如下:

{
    "ok": true,
    "result": {
        "message_id": 12345678987654321,
        "from": {
            "id": 987654321,
            "first_name": "The Bot Name",
            "username": "mybot_bot"
        },
        "chat": {
            "id": 123456789,
            "first_name": "Your Chat Party",
            "last_name": "Your Chat Party",
            "type": "private"
        },
        "date": 1484612850,
        "contact": {
            "phone_number": "989123456789",
            "first_name": "Some Random String",
            "user_id": 654789321
        }
    }
}

"user_id": 654789321 是我们感兴趣的部分.现在您可以删除您的消息.


请原谅我的英语语法差.欢迎任何我的句子编辑
@pedram 111:2222222必须替换为bot令牌.
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有