【问题标题】:Exchange telephone number for user id in Telegram在 Telegram 中交换用户 ID 的电话号码
【发布时间】:2017-11-20 11:13:17
【问题描述】:

我用 groovy 写了一个 Telegram Bot,这简直是小菜一碟。

现在为了注册propper webhooks,我需要获取用户ID。

我读到,我应该调用auth.sendCode 方法来启动该过程。

有没有更简单的替代方案?

如果没有,我怎样才能以最小的努力调用sendCode,并且可能没有任何额外的依赖?任何使用纯 java 或 curl 的示例或指针都会很好。

【问题讨论】:

  • 从你的问题中你想做什么不是很清楚。
  • 获取电报用户ID,就是这样
  • 当用户开始使用你的 BOT 时,你可能不需要完整的 Telegram API
  • 你能详细说明一下吗?
  • 当用户开始使用您的机器人时,您会在收到的数据中获得他的 user_id。消息对象包含一个用户属性对象,用户 ID 可从该用户对象获得。

标签: java authentication groovy telegram


【解决方案1】:

经过一番研究,我最终得到了一个简单的解决方案。

我没有通过 MTProto 对 Telegram API 进行身份验证,而是反转了该过程。我实现了一个新的机器人命令:

/login {my-user-id}

以便用户在 Telegram 机器人聊天中发送他的 ID(可以是稍后生成的令牌),然后机器人发送此消息 - 连同 Telegram 用户 ID! - 通过 webhook 连接到我的服务器,我在那里进行匹配和保存。

实现如下所示:

switch( json.message.text ){
  case ~/\/login \w+/: 
    String userId
    text.toLowerCase().eachMatch( /\/login (\w+)/ ){ userId = it[ 1 ] }
    String telegramUserId = json.message.from.id
    saveJoin userId, telegramUserId
    break
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2018-09-04
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多