Visual FoxPro
Visual FoxPro
Find a Label ID by Name
See more GMail REST API Examples
Lookup the ID of a GMail label by the label name.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL lcUserId
LOCAL lcUrl
LOCAL loSb
LOCAL loJson
LOCAL loJRecord
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
loHttp.AuthToken = "GMAIL-ACCESS-TOKEN"
lcUserId = "me"
loHttp.SetUrlVar("userId",lcUserId)
lcUrl = "https://www.googleapis.com/gmail/v1/users/{$userId}/labels"
* Get the list of GMail labels as JSON.
loSb = CreateObject('Chilkat.StringBuilder')
lnSuccess = loHttp.QuickGetSb(lcUrl,loSb)
IF (lnSuccess <> 1) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loSb
CANCEL
ENDIF
loJson = CreateObject('Chilkat.JsonObject')
loJson.LoadSb(loSb)
loJson.EmitCompact = 0
? loJson.Emit()
IF (loHttp.LastStatus <> 200) THEN
? "Failed."
RELEASE loHttp
RELEASE loSb
RELEASE loJson
CANCEL
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...
loJRecord = loJson.FindRecord("labels","name","QA",0)
IF (loJson.LastMethodSuccess = 1) THEN
? "The id of QA is: " + loJRecord.StringOf("id")
RELEASE loJRecord
ENDIF
loJRecord = loJson.FindRecord("labels","name","[Gmail]/testFolder",0)
IF (loJson.LastMethodSuccess = 1) THEN
? "The id of [Gmail]/testFolder is: " + loJRecord.StringOf("id")
RELEASE loJRecord
ENDIF
loJRecord = loJson.FindRecord("labels","name","questions",0)
IF (loJson.LastMethodSuccess = 1) THEN
? "The id of questions is: " + loJRecord.StringOf("id")
RELEASE loJRecord
ENDIF
* Output:
* The id of QA is: Label_5
* The id of [Gmail]/testFolder is: Label_21
* The id of questions is: Label_43
RELEASE loHttp
RELEASE loSb
RELEASE loJson