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
(AutoIt) 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
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oHttp = ObjCreate("Chilkat.Http") $oHttp.AuthToken = "ACCESS_TOKEN" $oHttp.Accept = "application/json" ; This is the ID for a particular message in our mailbox... Local $sId = "1712bc1dc22da2a2" ; Download the message using format=full $oHttp.SetUrlVar("id",$sId) Local $oResp = $oHttp.QuickRequest("GET","https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=full") If ($oHttp.LastMethodSuccess <> True) Then ConsoleWrite($oHttp.LastErrorText & @CRLF) Exit EndIf ConsoleWrite("Response Status Code: " & $oResp.StatusCode & @CRLF) $oJson = ObjCreate("Chilkat.JsonObject") $oJson.Load($oResp.BodyStr) $oJson.EmitCompact = False ConsoleWrite($oJson.Emit() & @CRLF) If ($oResp.StatusCode <> 200) Then ConsoleWrite("Failed." & @CRLF) Exit EndIf ; 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 ; } Local $strVal Local $sName Local $sValue Local $sPartId Local $sMimeType Local $sFilename Local $iBodySize Local $sBodyAttachmentId Local $iJ Local $iCount_j Local $sBodyData Local $iK Local $iCount_k Local $oJson1 Local $i1 Local $iCount_i1 Local $sId = $oJson.StringOf("id") Local $sThreadId = $oJson.StringOf("threadId") Local $snippet = $oJson.StringOf("snippet") Local $sHistoryId = $oJson.StringOf("historyId") Local $sInternalDate = $oJson.StringOf("internalDate") Local $sPayloadPartId = $oJson.StringOf("payload.partId") Local $sPayloadMimeType = $oJson.StringOf("payload.mimeType") Local $sPayloadFilename = $oJson.StringOf("payload.filename") Local $iPayloadBodySize = $oJson.IntOf("payload.body.size") Local $iSizeEstimate = $oJson.IntOf("sizeEstimate") Local $i = 0 Local $iCount_i = $oJson.SizeOfArray("labelIds") While $i < $iCount_i $oJson.I = $i $strVal = $oJson.StringOf("labelIds[i]") $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("payload.headers") While $i < $iCount_i $oJson.I = $i $sName = $oJson.StringOf("payload.headers[i].name") $sValue = $oJson.StringOf("payload.headers[i].value") $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("payload.parts") While $i < $iCount_i $oJson.I = $i $sPartId = $oJson.StringOf("payload.parts[i].partId") $sMimeType = $oJson.StringOf("payload.parts[i].mimeType") $sFilename = $oJson.StringOf("payload.parts[i].filename") $iBodySize = $oJson.IntOf("payload.parts[i].body.size") $sBodyAttachmentId = $oJson.StringOf("payload.parts[i].body.attachmentId") $iJ = 0 $iCount_j = $oJson.SizeOfArray("payload.parts[i].headers") While $iJ < $iCount_j $oJson.J = $iJ $sName = $oJson.StringOf("payload.parts[i].headers[j].name") $sValue = $oJson.StringOf("payload.parts[i].headers[j].value") $iJ = $iJ + 1 Wend $iJ = 0 $iCount_j = $oJson.SizeOfArray("payload.parts[i].parts") While $iJ < $iCount_j $oJson.J = $iJ $sPartId = $oJson.StringOf("payload.parts[i].parts[j].partId") $sMimeType = $oJson.StringOf("payload.parts[i].parts[j].mimeType") $sFilename = $oJson.StringOf("payload.parts[i].parts[j].filename") $iBodySize = $oJson.IntOf("payload.parts[i].parts[j].body.size") $sBodyData = $oJson.StringOf("payload.parts[i].parts[j].body.data") $iK = 0 $iCount_k = $oJson.SizeOfArray("payload.parts[i].parts[j].headers") While $iK < $iCount_k $oJson.K = $iK $sName = $oJson.StringOf("payload.parts[i].parts[j].headers[k].name") $sValue = $oJson.StringOf("payload.parts[i].parts[j].headers[k].value") $iK = $iK + 1 Wend $iK = 0 $iCount_k = $oJson.SizeOfArray("payload.parts[i].parts[j].parts") While $iK < $iCount_k $oJson.K = $iK $sPartId = $oJson.StringOf("payload.parts[i].parts[j].parts[k].partId") $sMimeType = $oJson.StringOf("payload.parts[i].parts[j].parts[k].mimeType") $sFilename = $oJson.StringOf("payload.parts[i].parts[j].parts[k].filename") $iBodySize = $oJson.IntOf("payload.parts[i].parts[j].parts[k].body.size") $sBodyData = $oJson.StringOf("payload.parts[i].parts[j].parts[k].body.data") $sBodyAttachmentId = $oJson.StringOf("payload.parts[i].parts[j].parts[k].body.attachmentId") $oJson1 = $oJson.ObjectOf("payload.parts[i].parts[j].parts[k]") $i1 = 0 $iCount_i1 = $oJson1.SizeOfArray("headers") While $i1 < $iCount_i1 $oJson1.I = $i1 $sName = $oJson1.StringOf("headers[i].name") $sValue = $oJson1.StringOf("headers[i].value") $i1 = $i1 + 1 Wend $iK = $iK + 1 Wend $iJ = $iJ + 1 Wend $i = $i + 1 Wend |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.