DataFlex
DataFlex
Find a Label ID by Name
See more GMail REST API Examples
Lookup the ID of a GMail label by the label name.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
String sUserId
String sUrl
Variant vSb
Handle hoSb
Handle hoJson
Variant vJRecord
Handle hoJRecord
String sTemp1
Integer iTemp1
Boolean bTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Set ComAuthToken Of hoHttp To "GMAIL-ACCESS-TOKEN"
Move "me" To sUserId
Get ComSetUrlVar Of hoHttp "userId" sUserId To iSuccess
Move "https://www.googleapis.com/gmail/v1/users/{$userId}/labels" To sUrl
// Get the list of GMail labels as JSON.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Get pvComObject of hoSb to vSb
Get ComQuickGetSb Of hoHttp sUrl vSb To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get pvComObject of hoSb to vSb
Get ComLoadSb Of hoJson vSb To iSuccess
Set ComEmitCompact Of hoJson To False
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
Get ComLastStatus Of hoHttp To iTemp1
If (iTemp1 <> 200) Begin
Showln "Failed."
Procedure_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...
Get ComFindRecord Of hoJson "labels" "name" "QA" False To vJRecord
If (IsComObject(vJRecord)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJRecord
Set pvComObject Of hoJRecord To vJRecord
End
Get ComLastMethodSuccess Of hoJson To bTemp1
If (bTemp1 = True) Begin
Get ComStringOf Of hoJRecord "id" To sTemp1
Showln "The id of QA is: " sTemp1
Send Destroy of hoJRecord
End
Get ComFindRecord Of hoJson "labels" "name" "[Gmail]/testFolder" False To vJRecord
If (IsComObject(vJRecord)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJRecord
Set pvComObject Of hoJRecord To vJRecord
End
Get ComLastMethodSuccess Of hoJson To bTemp1
If (bTemp1 = True) Begin
Get ComStringOf Of hoJRecord "id" To sTemp1
Showln "The id of [Gmail]/testFolder is: " sTemp1
Send Destroy of hoJRecord
End
Get ComFindRecord Of hoJson "labels" "name" "questions" False To vJRecord
If (IsComObject(vJRecord)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJRecord
Set pvComObject Of hoJRecord To vJRecord
End
Get ComLastMethodSuccess Of hoJson To bTemp1
If (bTemp1 = True) Begin
Get ComStringOf Of hoJRecord "id" To sTemp1
Showln "The id of questions is: " sTemp1
Send Destroy of hoJRecord
End
// Output:
// The id of QA is: Label_5
// The id of [Gmail]/testFolder is: Label_21
// The id of questions is: Label_43
End_Procedure