告诉我一些关于 Telegram API 的事情,例如:聊天 ID、用户 ID

Tell me a bit about Telegram API things such as: Chat ID, User ID

我有一个 Telegram 机器人。它的功能非常简单。我所需要的只是机器人向我发送人们发送给他的所有消息。

但要准确地向我发送消息,需要聊天 ID。我明白了,但问题如下:这个聊天 ID - 唯一且恒定的值是否完全属于我的 Telegram 帐户,如果不是,那么聊天 ID 实际上是什么,它是如何工作的。

我还发现我可以获取发件人的用户 ID。我可以不使用聊天 ID 而是使用用户 ID 从 Bot 发送消息吗,这也很容易获得?

顺便说一下,我正在使用 Java SDK。谢谢。

我尝试通过向机器人添加一个功能来获取我自己帐户的聊天 ID:将聊天 ID 发送给发件人。代码将在下面显示。它有效,但我不确定它是否正确。

if (!update.getMessage().isCommand()) {
    String senderId;
    User sender = update.getMessage().getFrom();
    String messageText = update.getMessage().getText();
    if(update.getMessage().getFrom().getUserName() != null) {
        senderId = "@" + sender.getUserName();
    } else {
        senderId = sender.getFirstName() + " " + sender.getLastName();
    }
    Long arthurChat = 100000001L;
    sendMessage(arthurChat, "Message: " + messageText + "\n" + "Sender: " + senderId);
}

等待回复。

Chat.id 唯一标识一个聊天,而 User.id 唯一标识一个用户。

在私人聊天中,这两个值是一致的,因此您可以通过以下两种方式获取该信息,而在群聊中,只有第一个会给您实际的发件人 ID,而第二个会给您群号

update.getMessage().getFrom().getId();
update.getMessage().getChat().getId();

在您报告的代码段中,您使用了一种名为 sendMessage() 的方法,但在您使用的 rubenlagus 的 java 库中已弃用该方法。相反,您应该执行以下操作:

SendMessage replyMessage = new SendMessage()
            .setChatId(arthurChat)
            .setText(whateverTextYouWantToSend);
execute(replyMessage);