Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonMsgIds
LOCAL oResp
LOCAL cId
LOCAL i
LOCAL nCount_i
LOCAL oJsonResponse

nSuccess := 0

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oHttp := CreateObject("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 := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonMsgIds:LoadFile("qa_data/json/gmail_message_ids.json")

oResp := CreateObject("Chilkat.HttpResponse")

i := 0
nCount_i := oJsonMsgIds:SizeOfArray("messages")
DO WHILE i < nCount_i
    oJsonMsgIds:I := i
    cId := oJsonMsgIds:StringOf("messages[i].id")

    //  Get the metadata for this message ID.
    oHttp:SetUrlVar("id", cId)

    nSuccess := oHttp:HttpNoBody("GET", "https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=metadata", oResp)
    IF (nSuccess == 0)
        ? oHttp:LastErrorText
        oHttp:destroy()
        oJsonMsgIds:destroy()
        oResp:destroy()
        RETURN
    ENDIF

    ? "Response Status Code: " + Str(oResp:StatusCode)

    oJsonResponse := CreateObject("Chilkat.JsonObject")
    oJsonResponse:Load(oResp:BodyStr)
    oJsonResponse:EmitCompact := 0
    ? oJsonResponse:Emit()

    IF (oResp:StatusCode != 200)
        ? "Failed."
        oHttp:destroy()
        oJsonMsgIds:destroy()
        oResp:destroy()
        oJsonResponse:destroy()
        RETURN
    ENDIF

    i := i + 1
ENDDO

//  Use this online tool to generate parsing code from sample JSON: 
//  Generate Parsing Code from JSON

oHttp:destroy()
oJsonMsgIds:destroy()
oResp:destroy()
oJsonResponse:destroy()