我有一个电报机器人。它的功能非常简单。我需要的是机器人将所有信息发送给我,人们将其发送给他。
但是要向我发送消息,需要聊天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);
}
等待回复。
答案 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);