Telegram API如何通过电报用户名获取用户的名字和姓氏

时间:2018-06-08 09:53:27

标签: java telegram

我需要从@username获取有关用户的信息。我没有使用电报机器人。我有一个用户名列表,我需要获取有关用户的信息(名字和姓氏)。





如何在java中实现这一点?可能吗?也许有些网站可以通过用户名提供有关用户的信息?




1 个答案:

答案 0 :(得分:2)

您可以尝试tdlib/td,这是一个跨平台库,用于构建由Telegram在C ++中创建的Telegram客户端。您可以通过JNI(Java Native Interface)在Java中使用它。他们提供Java client example来帮助您入门并建立自己的客户。如果您成功地遵循Java README并自己构建JNI库,那么您将在Java文件夹中找到生成的文件调用TdApi.java

从生成的TdApi.java,您可以使用静态内部类TdApi#GetUse(int userId)来查询目标用户:

client.send(new TdApi.GetUser(userId), result -> {
  if (result.getConstructor() != User.CONSTRUCTOR) {
    System.out.println("Error occurred: " + result);
    return;
  }
  User user = (User) result;
  System.out.println(user.firstName);
  System.out.println(user.lastName);
  System.out.println(user.username);
});

请注意:

  • 生成了TdApi.java,您无法在代码库中找到它。
  • TdApi.GetUser的构造函数不接受用户名作为输入。您需要提供用户ID。可以从聊天列表中找到用户ID。

相关资源: