0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Google Calendar API(V3)] Javaでカレンダーのユーザー設定情報を取得する

Posted at

Google Calendar API V3(Java)を使用して、
Googleカレンダーのユーザー設定情報を取得する方法
についてご紹介します。

Googleカレンダーの右上にある歯車マークを押して表示される
メニューの「設定」から設定できる内容を取得できます。

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

No 目次
1 ユーザー設定情報一覧を取得
1 スコープ
2 実行
3 レスポンスの内容
2 ユーザー設定情報の取得
1 スコープ
2 実行
3 レスポンスの内容

1. ユーザー設定情報一覧を取得

Googleカレンダーのユーザーの設定情報一覧を取得します。

1.1. スコープ

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

CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_READONLY
CalendarScopes.CALENDAR_SETTINGS_READONLY

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

1.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    
    Calendar.Settings settings = calendar.settings();
    Calendar.Settings.List list = settings.list();
    
    Settings res = list.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://www.googleapis.com/calendar/v3/users/me/settings
が実行されます。

1.2.2. クエリパラメータ

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

メソッド 引数 説明
setMaxResults Integer レスポンスで返されるエントリの最大数
デフォルトは100、最大250まで指定可能
setPageToken String 次のページで前のリスト要求を継続するためのトークン
レスポンスのgetNextPageTokenで取得が可能
setSyncToken String 結果を取得した後に変更された内容を取得するためのトークン
レスポンスのgetNextSyncTokenで取得が可能

1.3. レスポンスの内容

Settings

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"calendar#settings"
etag String Eタグ
items List<Setting> カレンダー情報
nextPageToken String 次のページのページトークン
リストの最後の場合はNULL
nextSyncToken String この結果が返された後に変更された内容を取得するためのトークン

Setting

メソッド 戻り値 説明
id String 設定ID
etag String Eタグ
getKind String リソースの種類
固定文字列:"calendar#setting"
value String ユーザーの設定値
設定IDによって変わります

設定ID

設定ID 設定メニュー1 設定メニュー2 内容
locale 言語と地域 言語 ユーザーの言語/地域 "ja"など
dateFieldOrder 言語と地域 日付形式 日付を表示するときの順序 "MDY"(12/31/2024)
"DMY"(31/12/2024)
"YMD"(2024/12/31)
format24HourTime 言語と地域 時刻の表示形式 時刻を24時間形式で表示するか "true"(13:00)
"false"(午後1:00)
timezone タイムゾーン メインのタイムゾーン ユーザーのタイムゾーンID "Asia/Tokyo"など
defaultEventLength 予定の設定 デフォルトの長さ 予定を作成した際のデフォルトの長さ 正の数(分単位)
hideInvitations 予定の設定 カレンダーに招待状を追加 招待したユーザーが、まだ応答(返信など)していない予定を非表示にするか "true"(招待メールから出欠確認に返答したときに追加)
"false"(それ以外)
hideInvitationsSetting 予定の設定 カレンダーに招待状を追加 招待したユーザーのカレンダー追加方法 "NONE"(すべての招待状を追加)
"UNKNOWN_SENDERS"(知っているユーザーから届いた場合のみ追加)
"UNRESPONDED"(招待メールから出欠確認に返答したときに追加)
autoAddHangouts 予定の設定 作成した予定に自動的に Google Meet のビデオ会議を追加する すべての予定にハングアウトを自動的に追加するか "true"、"false"
remindOnRespondedEventsOnly 通知設定 [参加] または [未定] と返信した予定の通知のみ受ける [参加] または [未定] と返信した予定の通知のみ受けるか "true"、"false"
hideWeekends ビューの設定 週末を表示する 週末を非表示にするか "true"、"false"
showDeclinedEvents ビューの設定 辞退した予定を表示する 辞退した予定を表示するか "true"、"false"
weekStart ビューの設定 週の始まり 週の始まりを指定 "0"(日曜日)
"1"(月曜日)
"6"(土曜日)
useKeyboardShortcuts キーボード ショートカット キーボード ショートカットを有効にする キーボード ショートカットを有効にするか "true"、"false"

2. ユーザー設定情報の取得

指定した設定IDの情報を取得します。

取得したい設定情報は、設定IDを指定します。

2.1. スコープ

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

CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_READONLY
CalendarScopes.CALENDAR_SETTINGS_READONLY

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

2.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    
    Calendar.Settings settings = calendar.settings();
    Calendar.Settings.Get get = settings.get("設定ID");
    
    Setting res = get.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

GET: https://www.googleapis.com/calendar/v3/users/me/settings/{設定ID}
が実行されます。

2.2.2. クエリパラメータ

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

2.3. レスポンスの内容

Setting

1.3. レスポンスの内容(Setting)と同じです。



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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?