如何使用TLSharp创建Telegram频道并修改频道权限(允许添加用户、禁止发送贴纸和投票)
修改Telegram频道权限(基于TLSharp)
嘿,我来帮你搞定这个权限调整的问题!你已经用TLSharp成功创建了频道,现在要修改默认权限(允许添加用户、禁止发送贴纸和投票),得用到TLRequestEditDefaultBannedRights这个请求类,它专门用来设置频道所有新成员的默认权限。
步骤说明与代码示例
首先,你需要从创建频道返回的TLUpdates对象里提取目标频道的Id和AccessHash——这是后续修改权限必须的标识信息。之后就可以构建权限修改请求了:
// 假设你已经从创建频道的返回结果TLUpdates中,拿到了对应的TLChannel实例 var targetChannel = updates.Chats.OfType<TeleSharp.TL.TLChannel>().FirstOrDefault(); if (targetChannel == null) { // 处理频道未找到的情况 return; } // 初始化权限修改请求 var editRightsReq = new TeleSharp.TL.Channels.TLRequestEditDefaultBannedRights(); editRightsReq.Channel = new TeleSharp.TL.TLInputChannel { Id = targetChannel.Id, AccessHash = targetChannel.AccessHash }; // 构建要设置的权限规则 var bannedRights = new TeleSharp.TL.TLBannedRights(); bannedRights.UntilDate = 0; // 设置为0表示权限永久生效 bannedRights.SendStickers = true; // 禁止发送贴纸(true代表禁止该操作) bannedRights.SendPolls = true; // 禁止发送投票(true代表禁止该操作) bannedRights.InviteUsers = false; // 允许添加/邀请用户(false代表不禁止该操作) // 其他权限保持默认即可,比如默认允许发送普通消息(SendMessages=false) editRightsReq.Rights = bannedRights; // 发送权限修改请求 var updateResult = await client.SendRequestAsync<TeleSharp.TL.TLUpdates>(editRightsReq);
关键逻辑说明
TLBannedRights类的参数逻辑需要注意:每个属性代表是否禁止对应操作:
- 设为
true:禁止该操作(比如禁止贴纸、投票) - 设为
false:允许该操作(比如允许邀请用户) UntilDate设为0表示权限永久生效,若想临时限制可以设置具体的时间戳。
如果之后需要修改特定管理员的权限,那就要用TLRequestEditAdmin类,但你需求里的是频道默认成员权限,上面的代码完全适用。
内容的提问来源于stack exchange,提问作者David Con
相关产品推荐
相关产品推荐

