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