bots - 告诉我一些关于 Telegram API 的事情,例如:聊天 ID、用户 ID
问题描述
我有一个 Telegram 机器人。它的功能非常简单。我所需要的只是机器人向我发送人们发送给他的所有消息。
但要准确地向我发送消息,需要聊天 ID。我明白了,但问题如下:这个聊天 ID - 唯一且恒定的值,是否完全属于我的电报帐户,如果不是,实际上是什么聊天 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,而第二个将为您提供群组的 ID
update.getMessage().getFrom().getId();
update.getMessage().getChat().getId();
在您报告的代码段中,您正在使用一个名为sendMessage()
但在您正在使用的 rubenlagus 的 java 库中已弃用的方法。相反,您应该执行以下操作:
SendMessage replyMessage = new SendMessage()
.setChatId(arthurChat)
.setText(whateverTextYouWantToSend);
execute(replyMessage);
推荐阅读
- javascript - Reach/Router - 主要组件中经过身份验证的路由与受保护的路由
- python - 进行一步预测
- sql - 获取该人未关注的用户的所有用户 gd
- c# - 可以从主线程调用 统一处理服务器侦听器的事件时出错
- vue.js - 如何使用 bootstrap 和 scss 设置 nuxt 静态页面渲染
- ios - nativescript angular 应用程序在 ios 上使用 firebase 静默崩溃
- maven - 使用 mvn clean verify 执行时 exec-maven 插件错误
- debugging - 无法使用 blazor 进行调试(缺少文件://)
- python - 无法在我的 beta 计算器中更改雅虎价格数据的时间间隔
- reactjs - React JS,文件未使用 https 上传到节点服务器