LoginSignup
1
1

[Gmail API] JavaでGmailの代理人を生成・削除する

Posted at

Gmail API v1(Java)を使用して、
Gmailの代理人の情報を取得するを生成・削除する方法
についてご紹介します。

代理人とは
ユーザーやグループを代理人に指定してGmailアカウントへのアクセスを許可すると、
代理人は受信トレイで次の操作ができます。
・フィルタ(ルール)でメールを自動的に振り分ける
・メールをアーカイブしてやりとりの記録を残す
・ラベルを使用してメールのステータスを管理する
・送信者として代理人名を表示する、または表示しない
代理人は、受信トレイの共有と同義です。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Gmail API] JavaでGmail APIを使う
を参照ください。

No 目次
1 代理人情報を生成
1 スコープ
2 実行
3 レスポンスの内容
2 代理人情報を削除
1 スコープ
2 実行
3 レスポンスの内容

1. 代理人情報を生成

指定されたアカウントの代理人を生成します。

1.1. スコープ

このAPIを実行するには、以下のスコープを指定してください。

GmailScopes.GMAIL_SETTINGS_SHARING

⧉[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.Settings settings = users.settings();

	Gmail.Users.Settings.Delegates delegates = settings.delegates();
	Delegate content = new Delegate();
	content.setDelegateEmail("代理人のメールアドレス");
	content.setVerificationStatus("accepted");
	Gmail.Users.Settings.Delegates.Create create = delegates.create("メールアドレス",content);

	Delegate res = create.execute();
	System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/delegates
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

Gmail.Users.Settings.Delegates.Createのsetメソッドにより、リクエストボディを追加できます。

メソッド 引数 説明
setDelegateEmail String 代理人のメールアドレス
setVerificationStatus VerificationStatus(enum) このアドレスが検証済みで、アカウントの代理人として機能できるか

VerificationStatus

定義値 説明
verificationStatusUnspecified 未設定
accepted アドレスはアカウントの代理人として機能
pending 確認リクエストがそのアドレスに送信されましたが、所有者はまだそれを受け入れていない
rejected 確認リクエストがそのアドレスに郵送されましたが、所有者はそれを拒否
expired 確認リクエストがそのアドレスに送信されましたが、確認されないまま期限切れ

1.3. レスポンスの内容

ListDelegatesResponse

メソッド 戻り値 説明
getDelegateEmail String 代理人のメールアドレス
getVerificationStatus VerificationStatus(enum) このアドレスが検証済みで、アカウントの代理人として機能できるか

2. 代理人情報を削除

代理人情報を削除します。

削除したい代理人メールアドレスを指定します。
1. 代理人情報を生成(ListDelegatesResponse)
getDelegateEmail()で取得した値を設定します。

2.1. スコープ

このAPIを実行するには、以下のスコープを指定してください。

GmailScopes.GMAIL_SETTINGS_SHARING

⧉[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.Settings settings = users.settings();

	Gmail.Users.Settings.Delegates delegates = settings.delegates();
	Delegate content = new Delegate();
	content.setDelegateEmail("代理人のメールアドレス");
	content.setVerificationStatus("accepted");
	Gmail.Users.Settings.Delegates.Delete delete = delegates.delete("メールアドレス","代理人メールアドレス");

	delete.execute();
}

2.2.1. HTTPリクエスト

DELETE: https://gmail.googleapis.com/gmail/v1/users/{メールアドレス}/settings/delegates
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.2.3. リクエストボディ

リクエストボディはありません。

2.3. レスポンスの内容

レスポンスはありません。
削除に失敗した場合、例外が発生します。



おしまい。。
1
1
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
1