Sample code for 30+ languages & platforms
Perl

Create a New GMail Label

See more GMail REST API Examples

Demonstrates how to create a new GMail label.

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);

# Create the JSON to be sent in the HTTP request body.
# The name of the new label is "questions".
$json = chilkat::CkJsonObject->new();
$json->UpdateString("name","questions");
$json->UpdateString("labelListVisibility","labelShow");
$json->UpdateString("messageListVisibility","show");

$json->put_EmitCompact(0);
print $json->emit() . "\r\n";

# The JSON contains this:
# {
#   "name": "questions",
#   "labelListVisibility": "labelShow",
#   "messageListVisibility": "show"
# }

$url = "https://www.googleapis.com/gmail/v1/users/{$userId}/labels";
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpJson("POST",$url,$json,"application/json",$resp);
if ($success == 0) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

print "status = " . $resp->get_StatusCode() . "\r\n";

# A 200 response status indicate success.
if ($resp->get_StatusCode() != 200) {
    print $resp->bodyStr() . "\r\n";
    print "Failed." . "\r\n";
    exit;
}

# A successful repsonse contains JSON that looks like this:

# {
#  "id": "Label_43",
#  "name": "questions",
#  "messageListVisibility": "show",
#  "labelListVisibility": "labelShow"
# }

print "response body:" . "\r\n";
print $resp->bodyStr() . "\r\n";

print "GMail label created!" . "\r\n";