Im Schema telegramm.org api, dem message
Typ ist wie folgt definiert:
Nachricht # c09be45f Flags: # out: Flags.1? True erwähnt: flags.4? True media_unread: flags.5? True stumm: flags.13? True post: flags.14? True id: int from_id: flags.8? Int to_id: Peer fwd_from: flags.2? MessageFwdHeader via_Bot_ID: flags.11? Int Antwort_zu_msg_id: flags.3? Int date: int Nachricht: string media: flags.9? MessageMedia reply_markup: flags.6? ReplyMarkup entities: flags.7? Vektoransichten: flags.10? Int edit_date : flags.15? int = Nachricht;
Beachten Sie den optionalen Parameter media:flags.9?MessageMedia
ist als Typ definiert MessageMedia
. Aber nirgendwo ist es MessageMedia
so definiert, dass mein Client nicht weiß, wie er es serialisieren / deserialisieren soll.
Welcher Typ ist? MessageMedia
und wie gehe ich mit anderen Typen um, die möglicherweise nicht definiert sind?
Antworten:
0 für die Antwort № 1Der beste Weg, dies zu verstehen, ist das media:flags.9?MessageMedia
repräsentiert einen allgemeinen Typ oder wie sie sagen a base type
welches könnte einer der folgenden Typen sein:
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;
Dieses Muster ist in der gesamten Telegram API üblich