LoginSignup
1
0

[Gmail API] Javaでメールボックス内のラベルを取得する

Last updated at Posted at 2024-03-16

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 プロモーション(カテゴリ)


おしまい。。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0