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
(Visual Basic 6.0) 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. Dim http As New ChilkatHttp http.AuthToken = "ACCESS_TOKEN" http.Accept = "application/json" ' This is the ID for a particular message in our mailbox... Dim id As String id = "1712bc1dc22da2a2" ' Download the message using format=full success = http.SetUrlVar("id",id) Dim resp As ChilkatHttpResponse Set resp = http.QuickRequest("GET","https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=full") If (http.LastMethodSuccess <> 1) Then Debug.Print http.LastErrorText Exit Sub End If Debug.Print "Response Status Code: " & resp.StatusCode Dim json As New ChilkatJsonObject success = json.Load(resp.BodyStr) json.EmitCompact = 0 Debug.Print json.Emit() If (resp.StatusCode <> 200) Then Debug.Print "Failed." Exit Sub End If ' 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 ' } Dim strVal As String Dim name As String Dim value As String Dim partId As String Dim mimeType As String Dim filename As String Dim bodySize As Long Dim bodyAttachmentId As String Dim j As Long Dim count_j As Long Dim bodyData As String Dim k As Long Dim count_k As Long Dim json1 As ChilkatJsonObject Dim i1 As Long Dim count_i1 As Long Dim id As String id = json.StringOf("id") Dim threadId As String threadId = json.StringOf("threadId") Dim snippet As String snippet = json.StringOf("snippet") Dim historyId As String historyId = json.StringOf("historyId") Dim internalDate As String internalDate = json.StringOf("internalDate") Dim payloadPartId As String payloadPartId = json.StringOf("payload.partId") Dim payloadMimeType As String payloadMimeType = json.StringOf("payload.mimeType") Dim payloadFilename As String payloadFilename = json.StringOf("payload.filename") Dim payloadBodySize As Long payloadBodySize = json.IntOf("payload.body.size") Dim sizeEstimate As Long sizeEstimate = json.IntOf("sizeEstimate") Dim i As Long i = 0 Dim count_i As Long count_i = json.SizeOfArray("labelIds") Do While i < count_i json.I = i strVal = json.StringOf("labelIds[i]") i = i + 1 Loop i = 0 count_i = json.SizeOfArray("payload.headers") Do While i < count_i json.I = i name = json.StringOf("payload.headers[i].name") value = json.StringOf("payload.headers[i].value") i = i + 1 Loop i = 0 count_i = json.SizeOfArray("payload.parts") Do While i < count_i json.I = i partId = json.StringOf("payload.parts[i].partId") mimeType = json.StringOf("payload.parts[i].mimeType") filename = json.StringOf("payload.parts[i].filename") bodySize = json.IntOf("payload.parts[i].body.size") bodyAttachmentId = json.StringOf("payload.parts[i].body.attachmentId") j = 0 count_j = json.SizeOfArray("payload.parts[i].headers") Do While j < count_j json.J = j name = json.StringOf("payload.parts[i].headers[j].name") value = json.StringOf("payload.parts[i].headers[j].value") j = j + 1 Loop j = 0 count_j = json.SizeOfArray("payload.parts[i].parts") Do While j < count_j json.J = j partId = json.StringOf("payload.parts[i].parts[j].partId") mimeType = json.StringOf("payload.parts[i].parts[j].mimeType") filename = json.StringOf("payload.parts[i].parts[j].filename") bodySize = json.IntOf("payload.parts[i].parts[j].body.size") bodyData = json.StringOf("payload.parts[i].parts[j].body.data") k = 0 count_k = json.SizeOfArray("payload.parts[i].parts[j].headers") Do While k < count_k json.K = k name = json.StringOf("payload.parts[i].parts[j].headers[k].name") value = json.StringOf("payload.parts[i].parts[j].headers[k].value") k = k + 1 Loop k = 0 count_k = json.SizeOfArray("payload.parts[i].parts[j].parts") Do While k < count_k json.K = k partId = json.StringOf("payload.parts[i].parts[j].parts[k].partId") mimeType = json.StringOf("payload.parts[i].parts[j].parts[k].mimeType") filename = json.StringOf("payload.parts[i].parts[j].parts[k].filename") bodySize = json.IntOf("payload.parts[i].parts[j].parts[k].body.size") bodyData = json.StringOf("payload.parts[i].parts[j].parts[k].body.data") bodyAttachmentId = json.StringOf("payload.parts[i].parts[j].parts[k].body.attachmentId") Set json1 = json.ObjectOf("payload.parts[i].parts[j].parts[k]") i1 = 0 count_i1 = json1.SizeOfArray("headers") Do While i1 < count_i1 json1.I = i1 name = json1.StringOf("headers[i].name") value = json1.StringOf("headers[i].value") i1 = i1 + 1 Loop k = k + 1 Loop j = j + 1 Loop i = i + 1 Loop |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.