Sample code for 30+ languages & platforms
Lua

Find a Label ID by Name

See more GMail REST API Examples

Lookup the ID of a GMail label by the label name.

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 = "GMAIL-ACCESS-TOKEN"

local userId = "me"
http:set_url_var("userId", userId)

local url = "https://www.googleapis.com/gmail/v1/users/{$userId}/labels"

-- Get the list of GMail labels as JSON.
local sb = chilkat.StringBuilder.new()
local success = http:quick_get_sb(url, sb)
if not success then
    print(http.last_error_text)
    return
end

local json = chilkat.JsonObject.new()
json:load_sb(sb)
json.emit_compact = false
print(json:emit())

if http.last_status ~= 200 then
    print("Failed.")
    return
end

-- The JSON returned looks like this:
-- {
--   "labels": [
--     {
--       "id": "Label_5",
--       "name": "QA",
--       "messageListVisibility": "show",
--       "labelListVisibility": "labelShow",
--       "type": "user"
--     },
--     {
--       "id": "Label_21",
--       "name": "[Gmail]/testFolder",
--       "type": "user"
--     },
--     {
--       "id": "CATEGORY_PERSONAL",
--       "name": "CATEGORY_PERSONAL",
--       "type": "system"
--     },
--     ...

-- The name of the label is generally known because it's what we visually see.
-- The id is what we need to get.  Assuming the name is unique,
-- find the JSON record having name=<desired name>
-- For example...
local jRecord = json:find_record("labels", "name", "QA", false)
if json.last_method_success then
    print("The id of QA is: " .. jRecord:string_of("id"))
end

jRecord = json:find_record("labels", "name", "[Gmail]/testFolder", false)
if json.last_method_success then
    print("The id of [Gmail]/testFolder is: " .. jRecord:string_of("id"))
end

jRecord = json:find_record("labels", "name", "questions", false)
if json.last_method_success then
    print("The id of questions is: " .. jRecord:string_of("id"))
end

-- Output:

-- The id of QA is: Label_5
-- The id of [Gmail]/testFolder is: Label_21
-- The id of questions is: Label_43