我的电报机器人是使用NetTelegramBotApi库在C#中编程的,是我频道的三个管理员之一,当我运行机器人时,它运行良好,直到另一个管理员(人类 - 管理员而不是机器人管理员)向频道发送帖子。
机器人停止获取更新,并在人工管理员发布到频道后回答它们。
这是一段向我的频道发送帖子的代码:
if(update.Message.Chat.Username == "xxxx" || update.Message.Chat.Username == "yyyy")
{
var req = new SendMessage(ChID, text) { ParseMode = SendMessage.ParseModeEnum.HTML, DisableWebPagePreview = true };
await bot.MakeRequestAsync(req);
var req2 = new SendMessage(update.Message.Chat.Id, "✅Your post was sent successfully.✅");
await bot.MakeRequestAsync(req2);
continue;
}
更多信息ChID是我的机器人和频道的聊天ID,我的机器人检查机器人用户是否是人类管理员之一。如果用户是频道管理员,机器人会将帖子发送到频道。
请帮我解决这个问题。
问题正是在您的获取更新代码。
首先,如您所知,机器人无法接收来自其他机器人的消息,因此这就是为什么机器人管理员的帖子做得很好的原因。
其次,您应该绝对确定所有类型的更新在获得更新时都会得到处理。经常出现此类问题的情况是不正确地检查更新类型。
在您的情况下,应该检查channel_post或edited_channel_pos类型的任何更新,因为现在它在您的代码中跳过了,bot在使用这些类型的更新对象进行更新时会引发异常。
还要注意,如果你想让你的机器人不被丢弃,在任何情况下都需要捕捉异常。
我想让我的不和谐机器人返回它在某个公会中可以访问的频道,我正在使用: 但这将返回公会的所有频道。如何检查机器人是否有读取频道的权限,以便我只能看到机器人被允许看到的频道?
直播(频道)管理 创建频道 删除频道 修改频道信息 修改观看页信息 获取频道列表 获取指定频道信息 上传直播文档 禁止直播流推送 恢复直播流推送 频道定制观看页地址 获取频道观众人数显示配置 设置频道观众人数显示配置 查询频道功能开关状态 设置频道功能开关状态 直播权限操作管理 自定义授权说明 身份赋予API 获取频道授权码 设置自定义授权跳转地址 设置频道授权观看方式 获取频道授权观看 更新互动
控制台-频道-停止 接口URL {youke-url}/console/Index.php?c=live&a=stop×tamp=1607677497&access_key=abc&sign=04394c5a45b6920bed314e94e178ebcf1dfded74 请求方式 POST Content-Type form-data 请求Query参数 参数 示例值 是否必填 参数描
下面是我用来创建聊天客户端和加入频道的代码:
我需要将电报频道帖子与我的网站同步。所以,我创建了一个机器人,一个频道,将我的机器人添加到这个频道(具有管理员权限,它可以访问消息),并将我的机器人的网络钩子绑定到指定的服务器url。一切顺利,帖子创建更新被正确发送到服务器url。唯一的问题是,没有跟踪电报频道帖子删除的更新,因此管理员手动从服务器数据库中删除帖子。任何想法,如何设置机器人或网络钩子以跟踪帖子删除?
创建频道 删除频道 修改频道信息 修改观看页信息 获取频道列表 获取指定频道信息 上传直播文档 禁止直播流推送 恢复直播流推送 频道定制观看页地址 获取频道观众人数显示配置 设置频道观众人数显示配置 查询频道功能开关状态 设置频道功能开关状态