Sample code for 30+ languages & platforms
Lua

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 Lua Downloads

Lua
local chilkat = require("chilkat")

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

local http = chilkat.Http.new()

http.auth_token = "ACCESS_TOKEN"

http.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.
local jsonMsgIds = chilkat.JsonObject.new()
local success = jsonMsgIds:load_file("qa_data/json/gmail_message_ids.json")

local resp = chilkat.HttpResponse.new()

local id = ""
local i = 0
local count_i = jsonMsgIds:size_of_array("messages")
while i < count_i do
    jsonMsgIds.i = i
    id = jsonMsgIds:string_of("messages[i].id")

    -- Get the metadata for this message ID.
    http:set_url_var("id", id)

    success = http:http_no_body("GET", "https://www.googleapis.com/gmail/v1/users/userId/messages/{$id}?format=metadata", resp)
    if not success then
        print(http.last_error_text)
        return
    end

    print("Response Status Code: " .. resp.status_code)

    local jsonResponse = chilkat.JsonObject.new()
    jsonResponse:load(resp.body_str)
    jsonResponse.emit_compact = false
    print(jsonResponse:emit())

    if resp.status_code ~= 200 then
        print("Failed.")
        return
    end

    i = i + 1
end

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