0
1

[Google Calendar API(V3)] Javaでアクセス制御ルール(ACL)を変更を監視する

Posted at

Google Calendar API V3(Java)を使用して、
Googleカレンダーのアクセス制御ルール(ACL)を変更を監視する方法
についてご紹介します。

カレンダーのアクセス制御ルール(ACL)とは
指定したユーザー、またはグループと予定の共有ができます。
UIでは、カレンダーの設定 -> [特定のユーザーまたはグループと共有する]
から設定できる内容です。

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

No 目次
1 ACLの変更を監視
1 スコープ
2 実行
3 レスポンスの内容
2 ACLの監視を停止
3 変更通知を受信

1. ACLの変更を監視

Googleカレンダーのアクセス制御ルールの変更を監視します。

1.1. スコープ

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

CalendarScopes.CALENDAR

⧉[Google Calendar API(V3)] JavaでCalendar APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    Calendar.Acl acl = calendar.acl();
    
    Channel content = new Channel();
    content.setId("チャンネルを識別するUUID");
    content.setType("web_hook");
    content.setAddress("変更通知が配信されるURL");
    Calendar.Acl.Watch watch = acl.watch("カレンダーID",content);
    
    Channel res = watch.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

POST: https://www.googleapis.com/calendar/v3/calendars/{カレンダーID}/acl/watch
が実行されます。

1.2.2. クエリパラメータ

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

1.2.3. リクエストボディ

Channelのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setId String 【必須】チャンネルを識別するUUID
setAddress String 【必須】変更通知が配信されるURL
setType String 【必須】このチャンネルで使用される配信方法の種類
"web_hook"(または"webhook")のみ
setToken String このチャンネル経由で通知と一緒に対象のアドレスに配布される任意の文字列
setParams Map<String,String> 配信チャンネルの操作を制御する追加のパラメータ
setExpiration Long 通知チャンネルの有効期間(秒)

1.3. レスポンスの内容

Channel

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"api#channel"
getId String このチャンネルを識別するUUID
getResourceId String このチャンネルで監視するリソースを識別するID
getResourceUri String 監視対象のリソースのバージョン固有のID
getToken String このチャンネル経由で通知と一緒に対象のアドレスに配布される任意の文字列
getExpiration long 通知チャンネルの有効期限

2. ACLの監視を停止

Googleカレンダーのアクセス制御ルールの監視を停止します。

変更通知の停止は、
⧉[Google Calendar API(V3)] Javaで変更通知を停止する
の記事を参照ください。

3. 変更通知を受信

アクセス制御ルール(ACL)の変更があった場合、登録したURLへPOSTされます。
HTTPヘッダーの「x-goog」から始まるヘッダーの内容で確認できます。

ヘッダ 内容
x-goog-channel-expiration 通知チャネルの有効期限 Tue, 02 Apr 2024 03:29:03 GMT
x-goog-channel-id チャンネルを識別するUUID test
x-goog-message-number 通知チャネルのこのメッセージを識別する整数 5238
x-goog-resource-id チャンネルで監視するリソースを識別するID NM0q1CyhvAtfdSZIlhdhdKtz68Q
x-goog-resource-state 通知をトリガーした新しいリソースの状態
sync,exists,not_exists
exists
x-goog-resource-uri 監視対象リソースの API バージョン固有の識別子 https://www.googleapis.com/calendar/v3/calendars/*******/acl?alt=json


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