【问题标题】:Can I get a phone number by user id via Telegram Bot API?我可以通过 Telegram Bot API 通过用户 ID 获取电话号码吗?
【发布时间】:2016-01-07 06:02:04
【问题描述】:

我正在使用Telegram Bot API 向用户发送即时消息。 我已经安装了nuget package。这个包是recommend by telegram developers

我创建了一个电报机器人,并通过代码成功访问了它。当我向机器人发送消息时,机器人会获取一些关于发件人的信息。

我需要用户的电话号码在我们的系统中识别他们并将信息发送回给他们。

我的问题是我可以通过telegramUserId 获取用户电话号码吗?

我这样做是为了方便用户。如果我可以得到用户电话号码,我就不必向用户索要了。

现在我的命令是这样的:

debt 9811201243

我想要

debt

【问题讨论】:

    标签: c# telegram telegram-bot


    【解决方案1】:

    【讨论】:

    • 你错了。机器人仍然无法使用电话号码除非用户使用特殊命令明确将其发送给机器人。
    • 你可以检查它是什么。用户可以发送自己的电话号码,也可以发送联系人。您需要比较消息发件人的 user_id 和联系人的 user_id。如果与用户的真实电话号码相同。
    • 是的,但是user can 的意思是,默认情况下,机器人无法使用电话号码。这就是我的意思。
    • 好的,它看起来像移动应用程序中的权限请求。如果用户可以访问号码,机器人可以做,否则 - 亲爱的用户,对不起,但机器人不能在没有电话号码的情况下做这件事。你是对的。
    • 如果我通过 request_contact 请求用户的电话 - 我可以确定这是用户的电话吗?用户不能手动发送其他用户的电话吗?例如,通过键入而不是按下按钮?或者甚至使用修改后的 Telegram 客户端?
    【解决方案2】:

    不,很遗憾Telegram Bot API 没有返回电话号码。您应该改用Telegram API methods 或向用户明确询问。您也无法获得用户的“朋友”。

    您一定会检索到以下信息:

    1. userid
    2. first_name
    3. content(不管是什么:文字、照片等)
    4. date (unixtime)
    5. chat_id

    如果用户配置它,您还将获得last_nameusername

    【讨论】:

    • 但如果我们明确要求用户提供电话号码,我们如何确保他不会发送自己的号码而不是其他人的号码?
    • 没有集成的方法可以做到这一点。不过,一种验证方法是向此电话号码发送一个代码,并要求他在聊天中提供此代码。
    • 为什么是unfortunately?这可以防止垃圾邮件发送者向所有用户发送垃圾邮件(就像 WhatsApp)
    • @SergeyIvanov 是否可以使用 userid 找到用户名?
    • 据我所知,只有当用户通过消息内容与您的机器人交互时,您才能获得它,即您不能从 Telegram Bot API 提供 user_id 和用户名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2018-11-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2012-03-31
    相关资源
    最近更新 更多