【问题标题】:Telegram API how to get a user First Name and Last name by telegram usernameTelegram API如何通过电报用户名获取用户的名字和姓氏
【发布时间】:2018-06-18 00:23:15
【问题描述】:

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

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

【问题讨论】:

  • 你不能用 Bot API 做到这一点,所以 Java 是不可能的
  • @Sean,可以使用其他方法吗? (没有 Java 的帮助)
  • 你必须使用客户端API
  • @Sean,你能提供一些任何语言的代码吗?将通过用户名打印用户全名的代码?如果可以,请回答我的问题,我标记为正确)
  • 如果你愿意,我可以为你编写 Python 代码

标签: java telegram


【解决方案1】:

您可以尝试tdlib/td,这是一个跨平台的库,用于构建由 Telegram 在 C++ 中创建的 Telegram 客户端。您可以通过 JNI(Java 本机接口)在 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。

相关资源:

【讨论】:

    猜你喜欢
    • 2021-01-16
    • 2017-04-20
    • 2019-01-06
    • 1970-01-01
    • 2012-04-29
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多