我需要从@username获取有关用户的信息。我没有使用电报机器人。我有一个用户名列表,我需要获取有关用户的信息(名字和姓氏)。
我如何在Java中实现呢?可能吗?也许某些网站可以通过用户名提供有关用户的信息?
最佳答案
您可以尝试使用tdlib/td
,这是一个跨平台的库,用于构建由Telegram在C ++中创建的Telegram客户端。您可以通过JNI(Java本机接口)在Java中使用它。他们提供了Java client example来帮助您入门并建立自己的客户。如果您成功地遵循Java自述文件并自己构建了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。相关资源:
Telegram Database Library
TDLib Java example
td_api.tl
getUser user_id:int32 = User;
td_api.tl
user