/ / Telegram.org API स्कीमा में अपरिभाषित प्रकारों को संभालना, जैसे "MessageMedia" - api, telegram

Telegram.org एपीआई स्कीमा में अपरिभाषित प्रकारों को संभालना, जैसे "संदेश मीडिया" - एपीआई, टेलीग्राम

Telegram.org एपीआई स्कीमा में, message प्रकार को इस प्रकार परिभाषित किया गया है:

संदेश#c09be45f फ़्लैग्स:# आउट: फ़्लैग्स.1?true उल्लेख किया गया:flags.4?true media_unread:flags.5?true चुप:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:peer fwd_from:flags.2? MessageFwdHeader by_bot_id:flags.11?int answer_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia answer_markup:flags.6?ReplyMarkup इकाइयां:flags.7?वेक्टर व्यू:flags.10?int edit_date :flags.15?int = संदेश;

वैकल्पिक पैरामीटर पर ध्यान दें media:flags.9?MessageMedia प्रकार के रूप में परिभाषित किया गया है MessageMedia. लेकिन कहीं नहीं है MessageMedia परिभाषित किया गया है, इसलिए मेरा ग्राहक यह नहीं जानता कि इसे क्रमबद्ध/deserialize कैसे करें।

किस प्रकार का है MessageMedia, और मैं अन्य प्रकारों से कैसे निपटूं जिन्हें परिभाषित नहीं किया जा सकता है?

उत्तर:

जवाब के लिए 0 № 1

इसे समझने का सबसे अच्छा तरीका यह है कि 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;

यह पैटर्न पूरे टेलीग्राम एपीआई में आम है