Telegram 如何在电报/启动时回显消息?

Telegram 如何在电报/启动时回显消息?,telegram,telegram-bot,python-telegram-bot,Telegram,Telegram Bot,Python Telegram Bot,我想用它的api通过电报建立身份验证 为了进行身份验证,在我的应用程序中,我要求用户单击以下链接: https://telegram.me/myloginbot?start=somesecretkey 如果我正确理解了文档,我应该期望bot将somesecretky回显到我的服务器 现在,我不清楚文档的这一步: 将webhook处理器配置为使用传入消息中以/start开头传递的参数查询Memcached 如果我理解正确,我需要配置myloginbot,这样当用户单击bot页面上的开始按钮时,b

我想用它的api通过电报建立身份验证

为了进行身份验证,在我的应用程序中,我要求用户单击以下链接:

https://telegram.me/myloginbot?start=somesecretkey
如果我正确理解了文档,我应该期望bot将
somesecretky
回显到我的服务器

现在,我不清楚文档的这一步:

  • 将webhook处理器配置为使用传入消息中以/start开头传递的参数查询Memcached
  • 如果我理解正确,我需要配置
    myloginbot
    ,这样当用户单击bot页面上的开始按钮时,bot会将包含
    somesecretkey
    和一些用户信息的url回显到我的服务器。但我不知道怎么做

    对此,建议:

  • 让bot通过查询数据库或键值存储中的唯一\u代码来检索用户名
  • 但我不知道如何让bot查询(可能是远程)数据库


    非常感谢你的提示

    我对深度链接的理解是:

  • 你有一个用户数据库。每个用户都有一个ID。假设您希望电报机器人与用户
    123
    通信。但是你不知道他的电报
    聊天id
    (机器人需要它才能向他发送消息)。你如何“引诱”他与机器人对话,从而暴露他的
    聊天id
    ?你在网页上放了一个链接

  • 但链接必须“个性化”。您希望每个用户按一个稍微不同的链接,以便区分他们。一种方法是在链接中嵌入用户ID。但是,用户ID不是您想要公开的内容,因此您可以生成一个与每个用户ID关联的(临时)键,并将该键嵌入链接中。例如,用户
    123
    具有键
    abcde
    。他的个性化链接将是:

    https://telegram.me/myloginbot?start=abcde
    
  • 有人点击了链接,并与你的机器人对话。同时(或当他按下开始按钮时),您的机器人将收到一条消息:

    /start abcde
    
  • 在收到该消息时,bot会看到
    abcde
    与用户
    123
    关联。也可以从消息中提取电报
    聊天室id
    。现在,机器人知道用户
    123
    chat\u id
    ,然后可以向他发送消息

  • 要尝试深度链接,您需要一个能够处理
    /start
    消息的bot,该bot由一个能够记住密钥ID关联的“数据存储”支持。当电报文档说“memcache”时,它们只是指存储密钥ID关联的东西。对于实验来说,它可能像字典或关联数组一样简单。在现实生活中,它可能是Memcached(内存缓存软件)或数据库表


    如果您使用Python,我建议您看一看电报机器人API的Python框架。它本身并不进行深度链接,但它确实可以帮助您接收bot的消息,以及其他bot操作。我还有一个演示了如何输出个性化链接、设置webhook以及用键解析传入的
    /start
    命令。

    感谢您提供的详细解释。实际上,我的困难是在第4步,当机器人看到abcde与用户123关联时。我想这个过程应该发生在我的服务器上,对吗?我的核心问题是将abcde从电报机器人返回到我的服务器,这样我就可以从中提取聊天id。顺便说一句,我使用的是django,所以我更喜欢在纯python中这样做,而不依赖外部库。我刚刚测试了深度链接,确认了我的理解是正确的(并相应地编辑了上面的答案)。我还添加了一个示例。请访问上面提到的链接。要接收
    /start
    消息,您必须通过调用Bot API来设置webhook。请给我一个如何使用setwebhook的例子好吗?我在上面给出的示例链接(我回答的最后一段)中有一个如何
    setwebhook
    的例子。只需按照链接,查看我的代码,然后在那里查找
    setWebhook
    。如前所述,如果您不想依赖任何外部库,那么您必须了解Telegram Bot API并以编程方式向其发出HTTP请求。要从Python发出HTTP请求,可以使用包。