Xbase++
Xbase++
Find a Label ID by Name
See more GMail REST API Examples
Lookup the ID of a GMail label by the label name.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL cUserId
LOCAL cUrl
LOCAL oSb
LOCAL oJson
LOCAL oJRecord
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 := "GMAIL-ACCESS-TOKEN"
cUserId := "me"
oHttp:SetUrlVar("userId", cUserId)
cUrl := "https://www.googleapis.com/gmail/v1/users/{$userId}/labels"
// Get the list of GMail labels as JSON.
oSb := CreateObject("Chilkat.StringBuilder")
nSuccess := oHttp:QuickGetSb(cUrl, oSb)
IF (nSuccess != 1)
? oHttp:LastErrorText
oHttp:destroy()
oSb:destroy()
RETURN
ENDIF
oJson := CreateObject("Chilkat.JsonObject")
oJson:LoadSb(oSb)
oJson:EmitCompact := 0
? oJson:Emit()
IF (oHttp:LastStatus != 200)
? "Failed."
oHttp:destroy()
oSb:destroy()
oJson:destroy()
RETURN
ENDIF
// 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...
oJRecord := oJson:FindRecord("labels", "name", "QA", 0)
IF (oJson:LastMethodSuccess == 1)
? "The id of QA is: " + oJRecord:StringOf("id")
oJRecord:destroy()
ENDIF
oJRecord := oJson:FindRecord("labels", "name", "[Gmail]/testFolder", 0)
IF (oJson:LastMethodSuccess == 1)
? "The id of [Gmail]/testFolder is: " + oJRecord:StringOf("id")
oJRecord:destroy()
ENDIF
oJRecord := oJson:FindRecord("labels", "name", "questions", 0)
IF (oJson:LastMethodSuccess == 1)
? "The id of questions is: " + oJRecord:StringOf("id")
oJRecord:destroy()
ENDIF
// Output:
// The id of QA is: Label_5
// The id of [Gmail]/testFolder is: Label_21
// The id of questions is: Label_43
oHttp:destroy()
oSb:destroy()
oJson:destroy()