告诉我一些有关Telegram API的信息,例如:聊天ID,用户ID

时间:2019-04-30 13:10:41

标签: bots telegram

我有一个电报机器人。它的功能非常简单。我需要的是机器人将所有信息发送给我,人们将其发送给他。

但是要向我发送消息,需要聊天ID。我知道了,但问题是:这个聊天ID是唯一且恒定的值,完全属于我的电报帐户,或者不属于我的电报帐户;如果不是,则它实际是什么以及如何工作。

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

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

我尝试通过向bot添加功能来获取自己帐户的聊天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);
}

等待回复。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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