Gmail API v1(Java)を使用して、
Gmailのメールボックスの変更履歴一覧を取得する方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Gmail API] JavaでGmail APIを使う
を参照ください。
本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。
No | 目次 | |
---|---|---|
1 | 変更履歴一覧を取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. 変更履歴一覧を取得
メールボックスの変更履歴一覧を取得します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
GmailScopes.MAIL_GOOGLE_COM
GmailScopes.GMAIL_MODIFY
GmailScopes.GMAIL_READONLY
GmailScopes.GMAIL_METADATA
⧉[Gmail API] JavaでGmail APIを使う(2.2 Gmailインスタンスを取得)
でスコープを指定してください。
1.2. 実行
setStartHistoryIdには、
⧉[Gmail API] Javaでメールボックスのユーザープロフィールを取得する(Profile)
で取得可能な履歴IDを指定します。
public static void main(String[] args) throws Exception{
Gmail gmail = getGmail();
Gmail.Users users = gmail.users();
Gmail.Users.History history = users.history();
Gmail.Users.History.List list = history.list(PATH);
list.setStartHistoryId(BigInteger.valueOf(履歴ID));
ListHistoryResponse res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/history
が実行されます。
1.2.2. クエリパラメータ
Gmail.Users.History.Listのsetメソッドにより、クエリパラメータを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setMaxResults | Long | 返される履歴レコードの最大数 デフォルトは100、最大値は500 |
setPageToken | String | リスト内の結果の特定のページを取得するためのページトークン |
setLabelId | String | IDと一致するラベルを持つメッセージのみを取得 |
setHistoryTypes | List<String> | 履歴タイプ |
履歴タイプ
タイプ | 内容 |
---|---|
messageAdded | メールボックスに追加されたメッセージ (HistoryMessageAdded) |
messageDeleted | メールボックスから削除されたメッセージ (HistoryMessageDeleted) |
labelAdded | メッセージに追加されたラベル (HistoryLabelAdded) |
labelRemoved | メッセージから削除されたラベル (HistoryLabelRemoved) |
1.3. レスポンスの内容
ListHistoryResponse
フィールド | メソッド | 戻り値 | 説明 |
---|---|---|---|
getNextPageToken | String | リスト内の結果の次のページを取得するためのページ トークン | |
getHistoryId | String | メールボックスの現在の履歴レコードID | |
getHistory | List<History> | 履歴レコードのリスト |
History
フィールド | メソッド | 戻り値 | 説明 |
---|---|---|---|
getId | String | メールボックスのシーケンスID | |
getMessages | List<Message> | 履歴レコードで変更されたメッセージのリスト | |
getMessagesAdded | List<HistoryMessageAdded> | 履歴レコードのメールボックスに追加されたメッセージ | |
getMessagesDeleted | List<HistoryMessageDeleted> | 履歴レコードのメールボックスから削除されたメッセージ | |
getLabelsAdded | List<HistoryLabelAdded> | 履歴レコード内のメッセージに追加されたラベル | |
getLabelsRemoved | List<HistoryLabelRemoved> | 履歴レコードのメッセージから削除されたラベル |
Message
メソッド | 戻り値 | 説明 |
---|---|---|
getId | String | メッセージID |
getThreadId | String | メッセージが属するスレッドID |
getLabelIds | List<String> | このメッセージに適用されるラベルのIDのリスト |
getSnippet | String | メッセージテキストの短い部分 |
getHistoryId | String | このメッセージを変更した最後の履歴レコードの ID |
getInternalDate | Long | 内部メッセージ作成タイムスタンプ(エポックミリ秒) |
getPayload | MessagePart | メッセージ部分の解析された電子メール構造。 |
getSizeEstimate | Integer | メッセージの推定サイズ(バイト単位) |
getRaw | String | RFC2822形式で Base64URLエンコードされた文字列の電子メールメッセージ全体 |
MessagePart
メソッド | 戻り値 | 説明 |
---|---|---|
getPartId | String | メッセージ部分ID |
getMimeType | String | メッセージ部分のMIMEタイプ |
getFilename | String | 添付ファイルのファイル名 |
getHeaders | List<MessagePartHeader> | メッセージ部分のヘッダーのリスト |
getBody | MessagePartBody | メッセージ部分の本文 |
getParts | List<MessagePart> | 子のMIMEメッセージ部分 |
MessagePartHeader
メソッド | 戻り値 | 説明 |
---|---|---|
getName | String | セパレータの前のヘッダーの名前 |
getValue | String | 区切り文字の後のヘッダーの値 |
MessagePartBody
メソッド | 戻り値 | 説明 |
---|---|---|
getAttachmentId | String | 添付ファイルID |
getSize | Integer | メッセージ部分データのバイト数 |
getData | String | MIME メッセージ部分の本文データ(base64 url エンコード文字列) |
HistoryMessageAdded
メソッド | 戻り値 | 説明 |
---|---|---|
getMessage | Message | 追加されたメッセージ |
HistoryMessageDeleted
メソッド | 戻り値 | 説明 |
---|---|---|
getMessage | Message | 削除されたメッセージ |
HistoryLabelAdded
メソッド | 戻り値 | 説明 |
---|---|---|
getLabelIds | List<String> | String |
getMessage | Message | 追加されるラベル |
HistoryLabelRemoved
メソッド | 戻り値 | 説明 |
---|---|---|
getLabelIds | List<String> | 削除されたラベルID |
getMessage | Message | 削除されたラベル |
おしまい。。