![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Get GMail Message format=fullExamines the JSON returned when getting a message using format=full. Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://developers.google.com/gmail/api/v1/reference/users/messages/get
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoHttp String sId Variant vResp Handle hoResp Handle hoJson String sStrVal String sName String sValue String sPartId String sMimeType String sFilename Integer iBodySize String sBodyAttachmentId Integer j Integer iCount_j String sBodyData Integer k Integer iCount_k 1 Handle hoJson1 Integer iI1 Integer iCount_i1 String sId String sThreadId String sSnippet String sHistoryId String sInternalDate String sPayloadPartId String sPayloadMimeType String sPayloadFilename Integer iPayloadBodySize Integer iSizeEstimate Integer i Integer iCount_i String sTemp1 Integer iTemp1 Move False To iSuccess // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Set ComAuthToken Of hoHttp To "ACCESS_TOKEN" Set ComAccept Of hoHttp To "application/json" // This is the ID for a particular message in our mailbox... Move "1712bc1dc22da2a2" To sId // Download the message using format=full Get ComSetUrlVar Of hoHttp "id" sId To iSuccess Get Create (RefClass(cComChilkatHttpResponse)) To hoResp If (Not(IsComObjectCreated(hoResp))) Begin Send CreateComObject of hoResp End Get pvComObject of hoResp to vResp Get ComHttpNoBody Of hoHttp "GET" "https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=full" vResp To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComStatusCode Of hoResp To iTemp1 Showln "Response Status Code: " iTemp1 Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get ComBodyStr Of hoResp To sTemp1 Get ComLoad Of hoJson sTemp1 To iSuccess Set ComEmitCompact Of hoJson To False Get ComEmit Of hoJson To sTemp1 Showln sTemp1 Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 <> 200) Begin Showln "Failed." Procedure_Return End // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // Here is a sample "format=full" response that contains 4 attachments: // The JSON parsing source code is shown below... // { // "id": "1712bc1dc22da2a2", // "threadId": "1712bc1dc22da2a2", // "labelIds": [ // "UNREAD", // "IMPORTANT", // "CATEGORY_PERSONAL", // "INBOX" // ], // "snippet": "Hello, this is a test email with attachments..", // "historyId": "759379", // "internalDate": "1585577056000", // "payload": { // "partId": "", // "mimeType": "multipart/mixed", // "filename": "", // "headers": [ // { // "name": "Delivered-To", // "value": "chilkat.support@gmail.com" // }, // { // "name": "Received", // "value": "..." // }, // { // "name": "X-Received", // "value": "..." // }, // { // "name": "X-Google-Smtp-Source", // "value": "..." // }, // { // "name": "X-Received", // "value": "..." // }, // { // "name": "ARC-Seal", // "value": "..." // }, // { // "name": "ARC-Message-Signature", // "value": "..." // }, // { // "name": "ARC-Authentication-Results", // "value": "..." // }, // { // "name": "Return-Path", // "value": "..." // }, // { // "name": "Received", // "value": "..." // }, // { // "name": "Received-SPF", // "value": "..." // }, // { // "name": "Authentication-Results", // "value": "..." // }, // { // "name": "DKIM-Signature", // "value": "..." // }, // { // "name": "DKIM-Signature", // "value": "..." // }, // { // "name": "Subject", // "value": "Test email with attachments" // }, // { // "name": "From", // "value": "..." // }, // { // "name": "To", // "value": "..." // }, // { // "name": "Date", // "value": "Mon, 30 Mar 2020 14:04:16 +0000" // }, // { // "name": "Mime-Version", // "value": "1.0" // }, // { // "name": "Content-Type", // "value": "multipart/mixed; boundary=\"=_wNvwW3YTnQBZ24pmfFNfay3S6M-pHT7KdZIkXwYF-BFiPYNE\"" // }, // { // "name": "References", // "value": "..." // }, // { // "name": "X-Mailer", // "value": "..." // }, // { // "name": "Thread-Index", // "value": "AQHWBpwYB0UZvgGPT1KluJJUCF0BGg==" // }, // { // "name": "Thread-Topic", // "value": "Test email with attachments" // }, // { // "name": "Message-ID", // "value": "..." // }, // { // "name": "X-SES-Outgoing", // "value": "2020.03.30-54.240.27.106" // }, // { // "name": "Feedback-ID", // "value": "..." // } // ], // "body": { // "size": 0 // }, // "parts": [ // { // "partId": "0", // "mimeType": "multipart/alternative", // "filename": "", // "headers": [ // { // "name": "Content-Type", // "value": "multipart/alternative; boundary=\"=_wNvwHW2hdOZkYPaJAhdOY4+XBEFNAcvIZ1sQcW4JkBcAdDqA\"" // } // ], // "body": { // "size": 0 // }, // "parts": [ // { // "partId": "0.0", // "mimeType": "text/plain", // "filename": "", // "headers": [ // { // "name": "Content-Type", // "value": "text/plain; charset=UTF-8" // }, // { // "name": "Content-Transfer-Encoding", // "value": "7bit" // } // ], // "body": { // "size": 129, // "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0IGVtYWlsIHdpdGggYXR0YWNobWVudHMuLg0KIA0KIA0KIA0KLS0gDQogQmVzdCBSZWdhcmRzLA0KIE1hdHQgRmF1c2V5DQogQ2hpbGthdCBTb2Z0d2FyZSwgSW5jLiANCg0KIA0KDQogDQog" // } // }, // { // "partId": "0.1", // "mimeType": "multipart/related", // "filename": "", // "headers": [ // { // "name": "Content-Type", // "value": "multipart/related; boundary=\"=_wNvw-LQZP2xD5vBm4q4esgoD5F4j3w+DRPUkkzOidpnpXAre\"" // } // ], // "body": { // "size": 0 // }, // "parts": [ // { // "partId": "0.1.0", // "mimeType": "text/html", // "filename": "", // "headers": [ // { // "name": "Content-Type", // "value": "text/html; charset=utf-8" // }, // { // "name": "Content-Transfer-Encoding", // "value": "7bit" // } // ], // "body": { // "size": 530, // "data": "PGh0bWw-DQogIDxoZWFkPg0KDQogICAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KICA8L2hlYWQ-DQogIDxib2R5Pg0KICAgIEhlbGxvLCB0aGlzIGlzIGE8Zm9udCBjb2xvcj0iI2ZmMDAwMCI-IHRlc3Q8L2ZvbnQ-IGVtYWlsIHdpdGgNCiAgICBhdHRhY2htZW50cy4uPGJyPg0KICAgIDxicj4NCiAgICA8aW1nIG1vei1kby1ub3Qtc2VuZD0iZmFsc2UiDQogICAgICBzcmM9ImNpZDpwYXJ0MS5GMEI1MzVEQi5DQjZFN0ExMkBjaGlsa2F0c29mdC5jb20iIGFsdD0ic2VhaG9yc2UiDQogICAgICB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCI-PGJyPg0KICAgIDxkaXYgY2xhc3M9Im1vei1zaWduYXR1cmUiPi0tIDxicj4NCiAgICAgIEJlc3QgUmVnYXJkcyw8YnI-DQogICAgICBNYXR0IEZhdXNleTxicj4NCiAgICAgIENoaWxrYXQgU29mdHdhcmUsIEluYy4NCiAgICAgIDxwPg0KICAgICAgPC9wPg0KICAgIDwvZGl2Pg0KICA8L2JvZHk-DQo8L2h0bWw-DQo=" // } // }, // { // "partId": "0.1.1", // "mimeType": "image/jpeg", // "filename": "seahorse.jpg", // "headers": [ // { // "name": "Content-Type", // "value": "image/jpeg" // }, // { // "name": "Content-Id", // "value": "\u003cpart1.F0B535DB.CB6E7A12@chilkatsoft.com\u003e" // }, // { // "name": "Content-Disposition", // "value": "inline; filename=seahorse.jpg" // }, // { // "name": "Content-Transfer-Encoding", // "value": "base64" // } // ], // "body": { // "attachmentId": "ANGjdJ-Z1c9gUGsEzexYYEsF5nLHGUaNiZQs5HkuFQVPo5jq1eze8poigmarvERUIRj1coKUaftiQPWhiZWaFyLDcyjFbfLdjWyyO3AxRO8pY5liAhVp1bt_5f79Nk0vfnZXL0OnZmNAMdrcFe645DbsajwDZcoYnWVcsV9Fe6PCNq41e6XW8Ko4Ex7zMzkATiwlLyx0RLcR0hl-FuZ-UVpQI0JeMTkNi4eN5-9L4dRU7HTo9qEyFW_p3__vXrnEJvmEvWXNUqxKLktcZvkvql6mnAVMDiIapqsE6x0EAvFobre7sf1_T6ieVlA-m92vrtELC2HHdxzkU-qhC_LuoOSOz8nd8tfWsrB8zex0v6NFFP9mJmBUb1QGtCGTxLdI40z_LdMOSiaqmeCq4o_s", // "size": 24388 // } // } // ] // } // ] // }, // { // "partId": "1", // "mimeType": "application/pdf", // "filename": "helloWorld.pdf", // "headers": [ // { // "name": "Content-Type", // "value": "application/pdf; name=helloWorld.pdf" // }, // { // "name": "Content-Transfer-Encoding", // "value": "base64" // }, // { // "name": "Content-Disposition", // "value": "attachment; filename=helloWorld.pdf" // } // ], // "body": { // "attachmentId": "ANGjdJ-oy3aCuZISJKLAhUdaEksCEklbAPyMaWzFgqOMGbPCRkgwgeu_Kttd99C17OBTHROkDZGekibTKWXGfscB5ww7fw4E65_V1dQ-jHhb2TD1Cdm58-BbNw2iDxzptco8iILPiSnLLfFn5Ps7nsRcxHaGTt3r0yqFKCuIYNnPK1vM04BXI_cfzo-HnI4I3tD6oHNHOGVQrL01MdShFQjPELPUjXM8z1qs7Kom-QyvV1iOldUN-66UuhynsmDX-CMM5TIdB-8KD_lmdhf-0DqG8JnCA20XpXyfqwS8XFkPA-t-QSjb7SdkHQFtQ4lz2PcBREFzZ2eI5j0l0Y_dQHRPYTeMwkVl1yl4MfFT4C4iso3VSF-eqaIjiFCbXKCFNyeEIW5WFsv189dhlSqU", // "size": 934 // } // }, // { // "partId": "2", // "mimeType": "application/x-gzip", // "filename": "hamlet.xml.gz", // "headers": [ // { // "name": "Content-Type", // "value": "application/x-gzip; name=hamlet.xml.gz" // }, // { // "name": "Content-Transfer-Encoding", // "value": "base64" // }, // { // "name": "Content-Disposition", // "value": "attachment; filename=hamlet.xml.gz" // } // ], // "body": { // "attachmentId": "ANGjdJ9rvj1ebIc-f0cXG0kwsb6pDBkRCNk3IQXbJ5z0-s2mEcVat3Pp6pVm3rTkRLOyeXHzRcTuel7nxRFJX6WVAKtG-5B-GL_b6DlsOWOzH4A_IKlyJ9U4aeWT02CgQL8oRwlCu1h0BtnY6lT8zureboGOqR7qoa-i5jH8xr6ds0nUDZp71lAwfOjji3eG6Wg6HfzWzWUThYPH3ba0_q35Jii8JIMhyJwwZnGjN3lvW_VhN6UIL1DIpop95b8rdwJdpyUavm7VhGtdNrI-mpgWQtT7WIAdIe6a-O74Zf4AB7uG7bp9R-IMBqQT-1jQqkN2_xlSpe3meWbuNu-4zsYfXN-IqM-Iy4dudAXjt0aY3Y8zxuHfW5qT7o4u8wSszhTIjM1j8lt-N7GZqnwJ", // "size": 77409 // } // }, // { // "partId": "3", // "mimeType": "text/plain", // "filename": "brasil_cert.pem", // "headers": [ // { // "name": "Content-Type", // "value": "text/plain; name=brasil_cert.pem" // }, // { // "name": "Content-Transfer-Encoding", // "value": "base64" // }, // { // "name": "Content-Disposition", // "value": "attachment; filename=brasil_cert.pem" // } // ], // "body": { // "attachmentId": "ANGjdJ8nGD_xRHvjDwNIaSUleWCWk15ksUleks0fJ29gfGVOebzjBOUnAHYgKPefUQ6d6ExtqYubpvGCka1kJAB4gFwsnhQeflBhFNkORBqtb6FAGq0FcNgrbuxyKywmoHOUV4GDsNs4OGroEcFhBeZNQ8XKEdEoaO8ht8DARn2LncjxioQ4TmZ6jawmMF-mLbW1mz4QjwNir5jLOsE11tYZV2tLDoqjsubKeJJA8xojWo9r50zWfJFgWJKXZJwyNvKyZTwLmmBL_ATFxLFp4Nvo4K37uuVdUCG8WXiWwNr0oIV1RZOd_ZOA7M6Jif0wUcppJdxXRqlsFJqGlcVsLowkVGrJNAMe-fLY1x4w5od3axZIdZQgBPlVRKYYu5xopPTrLJsn4ld7pNyAhpZW", // "size": 2952 // } // }, // { // "partId": "4", // "mimeType": "application/x-zip-compressed", // "filename": "helloWorld.zip", // "headers": [ // { // "name": "Content-Type", // "value": "application/x-zip-compressed; name=helloWorld.zip" // }, // { // "name": "Content-Transfer-Encoding", // "value": "base64" // }, // { // "name": "Content-Disposition", // "value": "attachment; filename=helloWorld.zip" // } // ], // "body": { // "attachmentId": "ANGjdJ9nWglkRNneBVGFk5GwSg83COa0zBeiTAvoMYniPklY03-w93dmEVHJTB9CAu5WMFW_yhV4ou2oX2w9SlpZjjyTgSc7sfYWeuX3pt29z67agy9WUVYeNGpo_30LSPgeyNk_Nm0DTAaektJTEMSy65rjRyK03VkHahNpMLY6Kd_pdfrk50oceuXzwNJZ-V-bftmIluueoQMqLcWQSGBRvEdIcl6EcPFFw8KuMLrjZZJwq8_bb8uM6zUvV23Q9LsLTgWg8FaBWejBf0wuIFXl3ZhtSLa-Y8OXCApHPdUnn45hccAzaQEmy4ZG7cgvCdN_jA9eFX46HYHty7ewleKPFGLTVof2JWsMiIi9BPqfohqQ5FPm1WXlGG_bOHvaMdoWcoqbKMMvF8lWZsfz", // "size": 174 // } // } // ] // }, // "sizeEstimate": 152847 // } Get Create (RefClass(cComChilkatJsonObject)) To hoJson1 If (Not(IsComObjectCreated(hoJson1))) Begin Send CreateComObject of hoJson1 End Get ComStringOf Of hoJson "id" To sId Get ComStringOf Of hoJson "threadId" To sThreadId Get ComStringOf Of hoJson "snippet" To sSnippet Get ComStringOf Of hoJson "historyId" To sHistoryId Get ComStringOf Of hoJson "internalDate" To sInternalDate Get ComStringOf Of hoJson "payload.partId" To sPayloadPartId Get ComStringOf Of hoJson "payload.mimeType" To sPayloadMimeType Get ComStringOf Of hoJson "payload.filename" To sPayloadFilename Get ComIntOf Of hoJson "payload.body.size" To iPayloadBodySize Get ComIntOf Of hoJson "sizeEstimate" To iSizeEstimate Move 0 To i Get ComSizeOfArray Of hoJson "labelIds" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Get ComStringOf Of hoJson "labelIds[i]" To sStrVal Move (i + 1) To i Loop Move 0 To i Get ComSizeOfArray Of hoJson "payload.headers" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Get ComStringOf Of hoJson "payload.headers[i].name" To sName Get ComStringOf Of hoJson "payload.headers[i].value" To sValue Move (i + 1) To i Loop Move 0 To i Get ComSizeOfArray Of hoJson "payload.parts" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Get ComStringOf Of hoJson "payload.parts[i].partId" To sPartId Get ComStringOf Of hoJson "payload.parts[i].mimeType" To sMimeType Get ComStringOf Of hoJson "payload.parts[i].filename" To sFilename Get ComIntOf Of hoJson "payload.parts[i].body.size" To iBodySize Get ComStringOf Of hoJson "payload.parts[i].body.attachmentId" To sBodyAttachmentId Move 0 To j Get ComSizeOfArray Of hoJson "payload.parts[i].headers" To iCount_j While (j < iCount_j) Set ComJ Of hoJson To j Get ComStringOf Of hoJson "payload.parts[i].headers[j].name" To sName Get ComStringOf Of hoJson "payload.parts[i].headers[j].value" To sValue Move (j + 1) To j Loop Move 0 To j Get ComSizeOfArray Of hoJson "payload.parts[i].parts" To iCount_j While (j < iCount_j) Set ComJ Of hoJson To j Get ComStringOf Of hoJson "payload.parts[i].parts[j].partId" To sPartId Get ComStringOf Of hoJson "payload.parts[i].parts[j].mimeType" To sMimeType Get ComStringOf Of hoJson "payload.parts[i].parts[j].filename" To sFilename Get ComIntOf Of hoJson "payload.parts[i].parts[j].body.size" To iBodySize Get ComStringOf Of hoJson "payload.parts[i].parts[j].body.data" To sBodyData Move 0 To k Get ComSizeOfArray Of hoJson "payload.parts[i].parts[j].headers" To iCount_k While (k < iCount_k) Set ComK Of hoJson To k Get ComStringOf Of hoJson "payload.parts[i].parts[j].headers[k].name" To sName Get ComStringOf Of hoJson "payload.parts[i].parts[j].headers[k].value" To sValue Move (k + 1) To k Loop Move 0 To k Get ComSizeOfArray Of hoJson "payload.parts[i].parts[j].parts" To iCount_k While (k < iCount_k) Set ComK Of hoJson To k Get ComStringOf Of hoJson "payload.parts[i].parts[j].parts[k].partId" To sPartId Get ComStringOf Of hoJson "payload.parts[i].parts[j].parts[k].mimeType" To sMimeType Get ComStringOf Of hoJson "payload.parts[i].parts[j].parts[k].filename" To sFilename Get ComIntOf Of hoJson "payload.parts[i].parts[j].parts[k].body.size" To iBodySize Get ComStringOf Of hoJson "payload.parts[i].parts[j].parts[k].body.data" To sBodyData Get ComStringOf Of hoJson "payload.parts[i].parts[j].parts[k].body.attachmentId" To sBodyAttachmentId Get pvComObject of hoJson1 to vJson1 Get ComObjectOf2 Of hoJson "payload.parts[i].parts[j].parts[k]" vJson1 To iSuccess Move 0 To iI1 Get ComSizeOfArray Of hoJson1 "headers" To iCount_i1 While (iI1 < iCount_i1) Set ComI Of hoJson1 To iI1 Get ComStringOf Of hoJson1 "headers[i].name" To sName Get ComStringOf Of hoJson1 "headers[i].value" To sValue Move (iI1 + 1) To iI1 Loop Move (k + 1) To k Loop Move (j + 1) To j Loop Move (i + 1) To i Loop End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.