Gmail API v1(Java)を使用して、
Gmailのメールボックス内のラベルを取得する方法
についてご紹介します。
ラベルとは
メールにつける印みたいなものです。
ラベルを作ることでラベル毎に整理、管理することができます。
Gmailの「設定」 -> 「ラベル」 から確認・設定できます。
作成可能なラベルは10,000個までです。
ラベルにはシステムが用意したsystemとユーザーが作成したuserが存在します。
systemのラベルは作成したり削除することはできません。(3. システムラベル)
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Gmail API] JavaでGmail APIを使う
を参照ください。
本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。
No | 目次 | |
---|---|---|
1 | ラベル一覧を取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
2 | ラベルを取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
3 | システムラベル |
1. ラベル一覧を取得
メールボックス内のラベル一覧を取得します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
GmailScopes.GMAIL_LABELS
GmailScopes.GMAIL_METADATA
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Gmail gmail = getGmail();
Gmail.Users users = gmail.users();
Gmail.Users.Labels labels = users.labels();
Gmail.Users.Labels.List list = labels.list("メールアドレス");
ListLabelsResponse res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/labels
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.3. レスポンスの内容
ListLabelsResponse
メソッド | 戻り値 | 説明 |
---|---|---|
getLabels | List<Label> | ラベルのリスト |
Label
メソッド | 戻り値 | 説明 |
---|---|---|
getId | String | ラベルID |
getName | String | ラベルの表示名 階層で親がある場合は、「/」でつなげた名前になる 例:"親/子/孫" |
getMessageListVisibility | MessageListVisibility(enum) | 「メール リストに表示」の設定 |
getLabelListVisibility | LabelListVisibility(enum) | 「ラベル リストに表示」の設定 |
getType | Type(enum) | 所有者タイプ |
getMessagesTotal | Integer | メッセージの総数 |
getMessagesUnread | Integer | 未読メッセージの数 |
getThreadsTotal | Integer | スレッドの総数 |
getThreadsUnread | Integer | 未読のスレッドの数 |
getColor | Color | ラベルに割り当てる色 |
MessageListVisibility
Gmailのラベル設定メニューの「メール リストに表示」の内容です。
定義値 | 内容 |
---|---|
show | メールリストに表示 |
hide | メールリストに非表示 |
LabelListVisibility
Gmailのラベル設定メニューの「ラベル リストに表示」の内容です。
定義値 | 内容 |
---|---|
labelShow | ラベルリストに表示 |
labelShowIfUnread | 未読の場合はラベルリストに表示 |
labelHide | ラベルリストに非表示 |
Type
定義値 | 内容 |
---|---|
system | Gmailで作成されたラベル |
user | ユーザーまたはアプリケーションによって作成されたカスタムラベル |
Color
メソッド | 戻り値 | 説明 |
---|---|---|
getTextColor | String | ラベルのテキスト色 例:"#684e07" |
getBackgroundColor | String | 背景色 例:"#fdedc1" |
2. ラベルを取得
指定したラベルの詳細内容を取得します。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
GmailScopes.GMAIL_LABELS
GmailScopes.GMAIL_METADATA
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
2.2. 実行
public static void main(String[] args) throws Exception{
Gmail gmail = getGmail();
Gmail.Users users = gmail.users();
Gmail.Users.Labels labels = users.labels();
Gmail.Users.Labels.Get get = labels.get("メールアドレス","ラベルID");
Label res = get.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
GET: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/labels/{ラベルID}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.3. レスポンスの内容
Label
1.3. レスポンスの内容(Label)の内容と同じです。
3. システムラベル
typeが「system」であるラベル一覧を下記に示します。
(あくまで筆者の環境で取得した情報です。)
id | name | 説明 |
---|---|---|
INBOX | INBOX | 受信トレイ |
STARRED | STARRED | スター付き |
IMPORTANT | IMPORTANT | 重要 |
CHAT | CHAT | チャット |
SENT | SENT | 送信済み |
DRAFT | DRAFT | 下書き |
SPAM | SPAM | 迷惑メール |
TRASH | TRASH | ゴミ箱 |
CATEGORY_SOCIAL | CATEGORY_SOCIAL | ソーシャル(カテゴリ) |
CATEGORY_UPDATES | CATEGORY_UPDATES | 新着(カテゴリ) |
CATEGORY_FORUMS | CATEGORY_FORUMS | フォーラム(カテゴリ) |
CATEGORY_PROMOTIONS | CATEGORY_PROMOTIONS | プロモーション(カテゴリ) |
おしまい。。