在telegram.org api模式中,message类型定义如下:
message#c09be45f flags:# out:lns.1?真提到: media_unread:flags.5?true 4?真media_unread:flags.5?true静默:media_unread:flags.5?true 13?真帖子:旗标14?真id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int消息:字符串媒体:标记.9?MessageMedia reply_markup:flags.6?ReplyMarkup实体:标记.7向量视图:旗标10?int edit_date:flags.15?int = Message;
注意,可选参数media:flags.9?MessageMedia被定义为MessageMedia类型。但是没有定义MessageMedia,所以我的客户端不知道如何序列化/反序列化它。
什么类型是MessageMedia,以及如何处理可能未定义的其他类型?
发布于 2016-08-16 20:24:34
理解这一点的最好方法是media:flags.9?MessageMedia代表一般类型,或者如他们所说的a base type,它可以是以下任何类型之一:
messageMediaEmpty#3ded6320 = MessageMedia;
messageMediaPhoto#3d8ce53d photo:Photo caption:string = MessageMedia;
messageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;
messageMediaContact#5e7d2f39 phone_number:string first_name:string last_name:string user_id:int = MessageMedia;
messageMediaUnsupported#9f84f49e = MessageMedia;
messageMediaDocument#f3e02ea8 document:Document caption:string = MessageMedia;
messageMediaWebPage#a32dd600 webpage:WebPage = MessageMedia;
messageMediaVenue#7912b71f geo:GeoPoint title:string address:string provider:string venue_id:string = MessageMedia;这种模式在电报API中很常见。
https://stackoverflow.com/questions/38983147
复制相似问题