Sample code for 30+ languages & platforms
Perl

Find a Label ID by Name

See more GMail REST API Examples

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

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

$http = chilkat::CkHttp->new();
$http->put_AuthToken("GMAIL-ACCESS-TOKEN");

$userId = "me";
$http->SetUrlVar("userId",$userId);

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

# Get the list of GMail labels as JSON.
$sb = chilkat::CkStringBuilder->new();
$success = $http->QuickGetSb($url,$sb);
if ($success != 1) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

$json = chilkat::CkJsonObject->new();
$json->LoadSb($sb);
$json->put_EmitCompact(0);
print $json->emit() . "\r\n";

if ($http->get_LastStatus() != 200) {
    print "Failed." . "\r\n";
    exit;
}

# 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...
# jRecord is a JsonObject
$jRecord = $json->FindRecord("labels","name","QA",0);
if ($json->get_LastMethodSuccess() == 1) {
    print "The id of QA is: " . $jRecord->stringOf("id") . "\r\n";

}

# jRecord is a JsonObject
$jRecord = $json->FindRecord("labels","name","[Gmail]/testFolder",0);
if ($json->get_LastMethodSuccess() == 1) {
    print "The id of [Gmail]/testFolder is: " . $jRecord->stringOf("id") . "\r\n";

}

# jRecord is a JsonObject
$jRecord = $json->FindRecord("labels","name","questions",0);
if ($json->get_LastMethodSuccess() == 1) {
    print "The id of questions is: " . $jRecord->stringOf("id") . "\r\n";

}

# Output:

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