Gets a specific message using format=full.
LOCAL loRest
LOCAL lnSuccess
LOCAL loOauth2
LOCAL loSbJson
LOCAL loJson
LOCAL lcId
LOCAL lcThreadId
LOCAL lcSnippet
LOCAL lcHistoryId
LOCAL lcInternalDate
LOCAL lcPayloadPartId
LOCAL lcPayloadMimeType
LOCAL lcPayloadFilename
LOCAL lnPayloadBodySize
LOCAL lnSizeEstimate
LOCAL i
LOCAL lnCount_i
LOCAL lcStrVal
LOCAL lcName
LOCAL lcValue
LOCAL lcPartId
LOCAL lcMimeType
LOCAL lcFilename
LOCAL lnBodySize
LOCAL lcBodyAttachmentId
LOCAL j
LOCAL lnCount_j
LOCAL k
LOCAL lnCount_k
LOCAL lcBodyData
LOCAL lnI1
LOCAL lnCount_i1
LOCAL loJson1
loRest = CreateObject('Chilkat_9_5_0.Rest')
* Provide a previously obtained OAuth2 access token.
loOauth2 = CreateObject('Chilkat_9_5_0.OAuth2')
loOauth2.AccessToken = "OAUTH2_ACCESS_TOKEN"
loRest.SetAuthOAuth2(loOauth2)
lnSuccess = loRest.Connect("www.googleapis.com",443,1,1)
IF (lnSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loOauth2
CANCEL
ENDIF
loRest.AddPathParam("messageId","15fc23688c553739")
loRest.AddQueryParam("format","full")
loSbJson = CreateObject('Chilkat_9_5_0.StringBuilder')
lnSuccess = loRest.FullRequestNoBodySb("GET","/gmail/v1/users/me/messages/messageId",loSbJson)
IF (lnSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loOauth2
RELEASE loSbJson
CANCEL
ENDIF
IF (loRest.ResponseStatusCode <> 200) THEN
? "Received error response code: " + STR(loRest.ResponseStatusCode)
? "Response body:"
? loSbJson.GetAsString()
RELEASE loRest
RELEASE loOauth2
RELEASE loSbJson
CANCEL
ENDIF
loJson = CreateObject('Chilkat_9_5_0.JsonObject')
loJson.LoadSb(loSbJson)
* The following code parses the JSON response.
* A sample JSON response is shown below the sample code.
lcId = loJson.StringOf("id")
lcThreadId = loJson.StringOf("threadId")
lcSnippet = loJson.StringOf("snippet")
lcHistoryId = loJson.StringOf("historyId")
lcInternalDate = loJson.StringOf("internalDate")
lcPayloadPartId = loJson.StringOf("payload.partId")
lcPayloadMimeType = loJson.StringOf("payload.mimeType")
lcPayloadFilename = loJson.StringOf("payload.filename")
lnPayloadBodySize = loJson.IntOf("payload.body.size")
lnSizeEstimate = loJson.IntOf("sizeEstimate")
i = 0
lnCount_i = loJson.SizeOfArray("labelIds")
DO WHILE i < lnCount_i
loJson.I = i
lcStrVal = loJson.StringOf("labelIds[i]")
i = i + 1
ENDDO
i = 0
lnCount_i = loJson.SizeOfArray("payload.headers")
DO WHILE i < lnCount_i
loJson.I = i
lcName = loJson.StringOf("payload.headers[i].name")
lcValue = loJson.StringOf("payload.headers[i].value")
i = i + 1
ENDDO
i = 0
lnCount_i = loJson.SizeOfArray("payload.parts")
DO WHILE i < lnCount_i
loJson.I = i
lcPartId = loJson.StringOf("payload.parts[i].partId")
lcMimeType = loJson.StringOf("payload.parts[i].mimeType")
lcFilename = loJson.StringOf("payload.parts[i].filename")
lnBodySize = loJson.IntOf("payload.parts[i].body.size")
lcBodyAttachmentId = loJson.StringOf("payload.parts[i].body.attachmentId")
j = 0
lnCount_j = loJson.SizeOfArray("payload.parts[i].headers")
DO WHILE j < lnCount_j
loJson.J = j
lcName = loJson.StringOf("payload.parts[i].headers[j].name")
lcValue = loJson.StringOf("payload.parts[i].headers[j].value")
j = j + 1
ENDDO
j = 0
lnCount_j = loJson.SizeOfArray("payload.parts[i].parts")
DO WHILE j < lnCount_j
loJson.J = j
lcPartId = loJson.StringOf("payload.parts[i].parts[j].partId")
lcMimeType = loJson.StringOf("payload.parts[i].parts[j].mimeType")
lcFilename = loJson.StringOf("payload.parts[i].parts[j].filename")
lnBodySize = loJson.IntOf("payload.parts[i].parts[j].body.size")
lcBodyAttachmentId = loJson.StringOf("payload.parts[i].parts[j].body.attachmentId")
k = 0
lnCount_k = loJson.SizeOfArray("payload.parts[i].parts[j].headers")
DO WHILE k < lnCount_k
loJson.K = k
lcName = loJson.StringOf("payload.parts[i].parts[j].headers[k].name")
lcValue = loJson.StringOf("payload.parts[i].parts[j].headers[k].value")
k = k + 1
ENDDO
k = 0
lnCount_k = loJson.SizeOfArray("payload.parts[i].parts[j].parts")
DO WHILE k < lnCount_k
loJson.K = k
lcPartId = loJson.StringOf("payload.parts[i].parts[j].parts[k].partId")
lcMimeType = loJson.StringOf("payload.parts[i].parts[j].parts[k].mimeType")
lcFilename = loJson.StringOf("payload.parts[i].parts[j].parts[k].filename")
lnBodySize = loJson.IntOf("payload.parts[i].parts[j].parts[k].body.size")
lcBodyData = loJson.StringOf("payload.parts[i].parts[j].parts[k].body.data")
loJson1 = loJson.ObjectOf("payload.parts[i].parts[j].parts[k]")
lnI1 = 0
lnCount_i1 = loJson1.SizeOfArray("headers")
DO WHILE lnI1 < lnCount_i1
loJson1.I = lnI1
lcName = loJson1.StringOf("headers[i].name")
lcValue = loJson1.StringOf("headers[i].value")
lnI1 = lnI1 + 1
ENDDO
RELEASE loJson1
k = k + 1
ENDDO
j = j + 1
ENDDO
i = i + 1
ENDDO
? "Example Completed."
RELEASE loRest
RELEASE loOauth2
RELEASE loSbJson
RELEASE loJson
{
"id": "15fc23688c553739",
"threadId": "15fc23688c553739",
"labelIds": [
"IMPORTANT",
"SENT",
"INBOX"
],
"snippet": "This is a test. \u200b",
"historyId": "1438",
"internalDate": "1510791874000",
"payload": {
"partId": "",
"mimeType": "multipart/mixed",
"filename": "",
"headers": [
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Received",
"value": "by 10.25.23.105 with HTTP; Wed, 15 Nov 2017 16:24:34 -0800 (PST)"
},
{
"name": "X-Originating-IP",
"value": "[2601:249:e00:9093:e894:b27f:e5d6:d01d]"
},
{
"name": "Date",
"value": "Wed, 15 Nov 2017 18:24:34 -0600"
},
{
"name": "Delivered-To",
"value": "matt@chilkat.io"
},
{
"name": "Message-ID",
"value": "\u003cCAPhjyBM1qqXS6NVB65W8Zt5-McF03qWSRDjW5am66wTMuard=w@mail.gmail.com\u003e"
},
{
"name": "Subject",
"value": "Test HTML email with image and attachment."
},
{
"name": "From",
"value": "Matt Fausey \u003cmatt@chilkat.io\u003e"
},
{
"name": "To",
"value": "Matt Fausey \u003cmatt@chilkat.io\u003e"
},
{
"name": "Content-Type",
"value": "multipart/mixed; boundary=\"001a11401a6c097887055e0ea572\""
}
],
"body": {
"size": 0
},
"parts": [
{
"partId": "0",
"mimeType": "multipart/related",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "multipart/related; boundary=\"001a11401a6c097885055e0ea571\""
}
],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0",
"mimeType": "multipart/alternative",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "multipart/alternative; boundary=\"001a11401a6c097882055e0ea570\""
}
],
"body": {
"size": 0
},
"parts": [
{
"partId": "0.0.0",
"mimeType": "text/plain",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "quoted-printable"
}
],
"body": {
"size": 22,
"data": "VGhpcyBpcyBhIHRlc3QuDQrigIsNCg=="
}
},
{
"partId": "0.0.1",
"mimeType": "text/html",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "text/html; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "quoted-printable"
}
],
"body": {
"size": 115,
"data": "PGRpdiBkaXI9Imx0ciI-VGhpcyBpcyBhIHRlc3QuPGltZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgc3JjPSJjaWQ6aWlfamExcWY5MGwwXzE1ZmMyMzUzOWJkMDA3MjciPjxicj7igIs8L2Rpdj4NCg=="
}
}
]
},
{
"partId": "0.1",
"mimeType": "image/jpeg",
"filename": "starfish.jpg",
"headers": [
{
"name": "Content-Type",
"value": "image/jpeg; name=\"starfish.jpg\""
},
{
"name": "Content-Disposition",
"value": "inline; filename=\"starfish.jpg\""
},
{
"name": "Content-Transfer-Encoding",
"value": "base64"
},
{
"name": "Content-ID",
"value": "\u003cii_ja1qf90l0_15fc23539bd00727\u003e"
},
{
"name": "X-Attachment-Id",
"value": "ii_ja1qf90l0_15fc23539bd00727"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Date",
"value": "Wed, 15 Nov 2017 16:23:08 -0800"
},
{
"name": "Message-ID",
"value": "\u003cCAPhjyBMicJ9k-EXY5Efcvp8o_z_J3x8_G=mnC_znLXnyBogemQ@mail.gmail.com\u003e"
},
{
"name": "Subject",
"value": "Attachment"
},
{
"name": "From",
"value": "Matt Fausey \u003cmatt@chilkat.io\u003e"
}
],
"body": {
"attachmentId": "ANGjdJ_ueuzzM9bpQ8l_tD27oDfn-smCe77viIAF1wy8ZeI09tK5vAuSS6V9Bahow4ikqaGleXqdQBeq8xhFkJ7WN-KKBSKvOfT2yD-XMlA1FC8AOKS2A8tBi5dDDbFrbnns33rfqEIRFAISslhdE481uB6sYfVoYjpuDThtW6Y96YA0Aso0P9txbKJwcwOeD0RxDav_vPzDjHuRuOYsGxbVTxesMB2eiMMw3i1y-WAu-pyWHqF0xMFehZmd7d-krKKdvI4UEgtzD9siXnnaH6MG55ykjBsjFRsmjKc-4K5fHeYHOf586Pkej5K238A",
"size": 6229
}
}
]
},
{
"partId": "1",
"mimeType": "application/pdf",
"filename": "helloWorld.pdf",
"headers": [
{
"name": "Content-Type",
"value": "application/pdf; name=\"helloWorld.pdf\""
},
{
"name": "Content-Disposition",
"value": "attachment; filename=\"helloWorld.pdf\""
},
{
"name": "Content-Transfer-Encoding",
"value": "base64"
},
{
"name": "X-Attachment-Id",
"value": "f_ja1qgya31"
}
],
"body": {
"attachmentId": "ANGjdJ934ScA-kvdsvBvOjO9z-RYmRLyO8PvqOCzwkk-smeLVpKqeoxXNIn9FL_RbzA6qmTWKQTJehrBVmX4NqYtFsivmwRfzIWj-A-SqvJATRhjEGOntUeBS0fPZ9xy_enmH5Qgi0iSdBmwAn1CBnNghEKdMjvxTMjLxqn2mSO4gvxIh8ahJZDMN1p8KMYO98dM2XfyNndltnK-sd_DizNR9BQu10w5WSTLeFfOh61SxGKeq4Dt3W5USQlx7dEG7dRiBDvjFM6wo2HVeSnGEVphOwx80t1MQdhRN-YOHCAahIqy7Z0-BkPIIjTeUtl_pST8oMi0IgJoo9x1oomY3JZp2OxWuNyOVWDGVsDavGHc6wRhwK5pJrDceCWxNdPEwExeYA84WOAFXE2D6I3m",
"size": 934
}
}
]
},
"sizeEstimate": 11716
}