您确定 TLSharp 不会以其众多的消息类型覆盖您的通话吗?
尝试在TLSharp sources 中搜索已实现的消息类。查找从 'TLRequest...' 开始的文件,例如TLRequestDeleteHistory、TLRequestCreateChat 等。
如果你需要的方法确实缺失,你可以像 TLSharp 一样实现它:
- 检查应在请求中发送哪些字段。参考telegram API。
- 从抽象类
TLMethod 继承您的自定义消息。
-
在基类中实现以下抽象属性和方法:
public abstract int Constructor { get; }
public abstract void SerializeBody(BinaryWriter bw);
public abstract void DeserializeBody(BinaryReader br);
public abstract void deserializeResponse(BinaryReader stream);
Constructor 属性应该只为方法返回一些 uniq 整数。
SerializeBody 应该将步骤 1 中的字段写入BinaryWriter。
DeserializeBody 应该从BinaryReader 读取它们。
deserializeResponse 可以直接打电话给ObjectUtils.DeserializeObject():
public override void deserializeResponse(BinaryReader br)
{
Response = (TLAbsUpdates)ObjectUtils.DeserializeObject(br);
}
您可以使您的实现类似于现有的 TLSharp 方法,例如TLRequestForwardMessage.
更新:
这是将用户添加到 Telegram 聊天或频道的代码:
await client.SendRequestAsync<TLAbsUpdates>(new TLRequestAddChatUser()
{
// Chat or channel ID
chat_id = chatId,
// User ID to be added
user_id = userId,
// Number of last messages to be forwarded
fwd_limit = forwardLimit,
});
有关详细信息,请参阅messages.addChatUser 的 Telegram API 页面。