c# - C# TLSharp 删除用户聊天
问题描述
如何删除聊天用户 C# TLSharp?错误的聊天 ID
var dialogs = await client.GetUserDialogsAsync(limit: 50) as TLDialogs;
var dialog = (dialogs.Dialogs[0]) as TLDialog;
var id= (dialog.Peer as TLPeerUser).UserId;
var deleteRequest = new TLRequestDeleteChatUser()
{
UserId = new TLInputUser() {
UserId = id
}
};
await client.SendRequestAsync<TLUpdates>(deleteRequest );
解决方案
如果您只是在测试如何删除用户,那么这可能会帮助您更好地了解。
我不想做任何假设,但这是从第一次聊天中删除第一个参与者的方法之一。我建议使用 Debugger 来了解如何使用 Linq 过滤掉您有兴趣删除的聊天和用户。
var dialogs = (TLDialogs)await client.GetUserDialogsAsync(limit: 50);
TLChat chat = dialogs.Chats.OfType<TLChat>().FirstOrDefault();
int userId = 0; // User ID To Delete
var request = new TLRequestGetFullChat() { ChatId = chat.Id };
var fullChat = await client.SendRequestAsync<TeleSharp.TL.Messages.TLChatFull>(request);
var participants = (fullChat.FullChat as TeleSharp.TL.TLChatFull).Participants as TLChatParticipants;
var p = participants.Participants.FirstOrDefault();
if (p is TLChatParticipant)
{
var participant = p as TLChatParticipant;
Console.WriteLine($"\t{participant.UserId}");
userId = participant.UserId;
}
else if (p is TLChatParticipantAdmin)
{
var participant = p as TLChatParticipantAdmin;
Console.WriteLine($"\t{participant.UserId}**");
userId = participant.UserId;
}
else if (p is TLChatParticipantCreator)
{
var participant = p as TLChatParticipantCreator;
Console.WriteLine($"\t{participant.UserId}**");
userId = participant.UserId;
}
var deleteRequest = new TLRequestDeleteChatUser()
{
ChatId = chat.Id,
UserId = new TLInputUser()
{
UserId = userId
}
};
await client.SendRequestAsync<TLUpdates>(deleteRequest);
从这里查看用于查找频道、参与者、同行、聊天等的示例代码
推荐阅读
- javascript - OpenLayers 地图上的可拖动图标
- sql - 从oracle中的日期列获取日期和时间
- android - 从屏幕上绘制图像但仍然从屏幕上获得点击事件
- mongodb - MongoDB | 使用数组进行图形查找
- php - 在 httpd 服务的 php 应用程序上启用 HTTPS
- php - PHP中的抽象方法和接口方法有什么区别?
- git - 在提交以保持历史干净之前,是否有必要将更改从 master 更改为分支
- angularjs - 为什么在 Angularjs 中使用组件?
- .net - 尝试删除已保存的 Excel 文件但收到 IOException:该进程无法访问该文件,因为它正被另一个进程使用
- java - 将图像上绘制的形状写入 PDF 文件时会反转