在 Telegram 中将电话号码交换为用户 ID
Exchange telephone number for user id in Telegram
我在 groovy 中写了一个 Telegram Bot,这是小菜一碟。
现在为了注册合适的 webhook,我需要获取用户的 ID。
我读到,我应该调用 auth.sendCode 方法来启动该过程。
有没有更简单的替代方法?
如果没有,我如何才能以最小的努力调用 sendCode
并且可能 w/o 任何其他依赖项?使用普通 java 或 curl 的任何示例或指针都很好。
经过一番研究,我得出了一个简单的解决方案。
我没有通过 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
}
我在 groovy 中写了一个 Telegram Bot,这是小菜一碟。
现在为了注册合适的 webhook,我需要获取用户的 ID。
我读到,我应该调用 auth.sendCode 方法来启动该过程。
有没有更简单的替代方法?
如果没有,我如何才能以最小的努力调用 sendCode
并且可能 w/o 任何其他依赖项?使用普通 java 或 curl 的任何示例或指针都很好。
经过一番研究,我得出了一个简单的解决方案。
我没有通过 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
}