AutoIt
AutoIt
Get GMail Message Metadata
See more GMail REST API Examples
Demonstrates how to get the metadata for each message in a list of message IDs.Chilkat AutoIt Downloads
Local $bSuccess = False
; 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"
; Let's say we have the following JSON containing a list of message ID's
; {
; "messages": [
; {
; "id": "1712bc1dc22da2a2",
; "threadId": "1712bc1dc22da2a2"
; },
; {
; "id": "1712b94fa2168040",
; "threadId": "1712b94fa2168040"
; },
; {
; "id": "1711e4bd96ded05e",
; "threadId": "1711e4bd96ded05e"
; },
; {
; "id": "1711de0d119e751e",
; "threadId": "1711de0d119e751e"
; },
; {
; "id": "1711c81a43050f59",
; "threadId": "1711c81a43050f59"
; },
; {
; "id": "1711c2c1516abce5",
; "threadId": "1711c2c1516abce5"
; },
; {
; "id": "1711c161e655c915",
; "threadId": "1711c161e655c915"
; },
; {
; "id": "171199c6e454558c",
; "threadId": "171199c6e454558c"
; },
; {
; "id": "17119474c8aa248e",
; "threadId": "17119474c8aa248e"
; }
; ],
; "nextPageToken": "16710921492249671162",
; "resultSizeEstimate": 309
; }
; Normally your program would have the above JSON in a string variable (obtained from a previous call to get
; a list of message IDs from a GMail mailbox). In this example, we'll load the JSON from a file.
$oJsonMsgIds = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonMsgIds.LoadFile("qa_data/json/gmail_message_ids.json")
$oResp = ObjCreate("Chilkat.HttpResponse")
Local $sId
Local $i = 0
Local $iCount_i = $oJsonMsgIds.SizeOfArray("messages")
While $i < $iCount_i
$oJsonMsgIds.I = $i
$sId = $oJsonMsgIds.StringOf("messages[i].id")
; Get the metadata for this message ID.
$oHttp.SetUrlVar("id",$sId)
$bSuccess = $oHttp.HttpNoBody("GET","https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=metadata",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("Response Status Code: " & $oResp.StatusCode & @CRLF)
$oJsonResponse = ObjCreate("Chilkat.JsonObject")
$oJsonResponse.Load($oResp.BodyStr)
$oJsonResponse.EmitCompact = False
ConsoleWrite($oJsonResponse.Emit() & @CRLF)
If ($oResp.StatusCode <> 200) Then
ConsoleWrite("Failed." & @CRLF)
Exit
EndIf
$i = $i + 1
Wend
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON