Return messages matching the specified query. See https://support.google.com/mail/answer/7190?hl=en for additional information about search operators. This example searches for all emails having the whole word "ADVChina" in the subject.
curl -X GET https://www.googleapis.com/gmail/v1/users/me/messages?q=subject:ADVChina \
--header "Authorization: Bearer GMAIL_TOKEN"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
Procedure ChilkatExample()
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success.i
; URL: https://www.googleapis.com/gmail/v1/users/me/messages?q=subject:ADVChina
bTls.i = 1
port.i = 443
bAutoReconnect.i = 1
success = CkRest::ckConnect(rest,"www.googleapis.com",port,bTls,bAutoReconnect)
If success <> 1
Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
ProcedureReturn
EndIf
CkRest::ckAddHeader(rest,"Authorization","Bearer GMAIL_TOKEN")
sbResponseBody.i = CkStringBuilder::ckCreate()
If sbResponseBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkRest::ckFullRequestNoBodySb(rest,"GET","/gmail/v1/users/me/messages?q=subject:ADVChina",sbResponseBody)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
respStatusCode.i = CkRest::ckResponseStatusCode(rest)
If respStatusCode >= 400
Debug "Response Status Code = " + Str(respStatusCode)
Debug "Response Header:"
Debug CkRest::ckResponseHeader(rest)
Debug "Response Body:"
Debug CkStringBuilder::ckGetAsString(sbResponseBody)
CkRest::ckDispose(rest)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
jsonResponse.i = CkJsonObject::ckCreate()
If jsonResponse.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoadSb(jsonResponse,sbResponseBody)
; See the Online Tool for Generating JSON Parse Code
i.i
count_i.i
resultSizeEstimate.i = CkJsonObject::ckIntOf(jsonResponse,"resultSizeEstimate")
i = 0
count_i = CkJsonObject::ckSizeOfArray(jsonResponse,"messages")
While i < count_i
CkJsonObject::setCkI(jsonResponse, i)
id.s = CkJsonObject::ckStringOf(jsonResponse,"messages[i].id")
threadId.s = CkJsonObject::ckStringOf(jsonResponse,"messages[i].threadId")
i = i + 1
Wend
CkRest::ckDispose(rest)
CkStringBuilder::ckDispose(sbResponseBody)
CkJsonObject::ckDispose(jsonResponse)
ProcedureReturn
EndProcedure
{
"messages": [
{
"id": "166e50fed0b9b0cb",
"threadId": "166e50fed0b9b0cb"
},
{
"id": "166c12e5fee013fe",
"threadId": "166c12e5fee013fe"
},
{
"id": "1669cc9a926bb8c1",
"threadId": "1669cc9a926bb8c1"
},
{
"id": "16678c485e7f0a0c",
"threadId": "16678c485e7f0a0c"
}
],
"resultSizeEstimate": 4
}