Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... 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. For more information, see https://developers.google.com/gmail/api/v1/reference/users/messages/get
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp String sId Boolean iSuccess 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 Variant vJson1 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 Boolean bTemp1 // 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 ComQuickRequest Of hoHttp "GET" "https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=full" To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) 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." Send Destroy of hoResp Procedure_Return End Send Destroy of hoResp // 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 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 ComObjectOf Of hoJson "payload.parts[i].parts[j].parts[k]" To vJson1 If (IsComObject(vJson1)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoJson1 Set pvComObject Of hoJson1 To vJson1 End 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 Send Destroy of hoJson1 Move (k + 1) To k Loop Move (j + 1) To j Loop Move (i + 1) To i Loop End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.