2017-02-09 8 views
13

リマインダーが必要ないサービスアカウントを使用して、組織内のユーザーのイベントを作成しようとしています。祝日などのようなもの...リマインダー/通知なしで別のユーザーのGoogleカレンダーに予定を作成するには

私はアラームがデフォルトを上書きするために、オブジェクトのイベントに追加:

EventReminder[] reminderOverrides = new EventReminder[] {}; 
Event.Reminders reminders = new Event.Reminders() 
    .setUseDefault(false) 
    .setOverrides(Arrays.asList(reminderOverrides)); 
event.setReminders(reminders) 

ユニットテストと機能テストは、私はサービスアカウントから確認したときに添付何のリマインダがない示して。

ただし、ユーザーの資格情報でログインしても、既定のリマインダーは引き続き表示されます。

祝祭日に朝早くに人が邪魔されないように、私は何が必要ですか?

+0

イベントを挿入または作成するには、Calendar APIの['Events:insert'](https://developers.google.com/google-apps/calendar/v3/reference/events/insert)メソッドを使用してみてください他のユーザーのために。このメソッドにはパラメータ['sendNotifications'](https://developers.google.com/google-apps/calendar/v3/reference/events/insert#sendNotifications)があります。これは新しいイベントの作成に関する通知を送信するかどうかを意味します。このパラメータを** false **に設定して、ユーザーがこのイベントで通知しないようにすることができます。 – KENdi

+0

@KENdi sendNotificationsをfalseに設定しましたが、正常に動作しているようですが、イベントの前にリマインダーを削除する必要があります。削除することはできません。 –

答えて

7

サービスアカウントを使用する場合は、ユーザーを偽装し、管理者アカウントを使用しないでください。管理者アカウントによってイベントが作成されると、デフォルトの設定がユーザーのカレンダー設定から取得されます。しかし、ユーザーを偽装すると、通知を無効にすることができます。

残りのAPIドキュメントから:

それはGoogleCredential工場のsetServiceAccountUser方法でユーザーアカウントの電子メールアドレスを指定することができます。

関連する問題