Sample code for 30+ languages & platforms
Dart

Find a Label ID by Name

See more GMail REST API Examples

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

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();
  http.authToken = 'GMAIL-ACCESS-TOKEN';

  final userId = 'me';
  http.setUrlVar('userId', userId);

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

  // Get the list of GMail labels as JSON.
  final sb = CkStringBuilder();
  try {
    http.quickGetSb(url, sb);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final json = CkJsonObject();
  json.loadSb(sb);
  json.emitCompact = false;
  print(json.emit());

  if (http.lastStatus != 200) {
    print('Failed.');
    return;
  }

  // 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...
  var jRecord = json.findRecord('labels', 'name', 'QA', false);
  if (json.lastMethodSuccess) {
    print('The id of QA is: ${jRecord.stringOf('id')}');
  }

  try {
    jRecord = json.findRecord('labels', 'name', '[Gmail]/testFolder', false);
    print('The id of [Gmail]/testFolder is: ${jRecord.stringOf('id')}');
  } on ChilkatException {
    // json.findRecord() failed; continue anyway.
  }

  try {
    jRecord = json.findRecord('labels', 'name', 'questions', false);
    print('The id of questions is: ${jRecord.stringOf('id')}');
  } on ChilkatException {
    // json.findRecord() failed; continue anyway.
  }

  // Output:

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