2016-01-07 9 views
5

私はGoogleCalendar APIに、node.jsをアプリケーションとして使用しています。 認証手続きを使用してイベントを作成し、認証中に生成されたアクセストークンを使用してカレンダーイベントを作成することができました。GoogleCalendarAPIイベントを受け入れる/拒否する

私の質問では、イベントに出席者がいて、出席者側のカレンダーAPIを使用してイベントを承諾/拒否したいとします。

出席者のカレンダーイベントを取得し、最初に作成したイベントのiCalUIDと一致させてから、出席者のカレンダーの更新イベントを使用してイベントを変更しようとしました。

答えて

0

対応するには、同じイベントIDを持つイベントを出席者のカレンダーから取得し、この出席者のresponse statusをneedsActionからaccepted/declineに変更するパッチまたは更新操作を実行する必要があります。

イベントは参加者と主催者との間でコピーする方法についてのドキュメントのビットは: https://developers.google.com/google-apps/calendar/concepts/sharing

2

イベントの作成者または所有者は、参加者の応答を変更することはできません。出席者のみがステータスを変更できます。

ユーザー側のステータスを更新するには、Event.update APIを使用し、 'attendees.responseStatus'の値を指定します。出席者の応答ステータスは4(4)の可能な値を持ちます(後述)。

'needsAction' - 招待状に応答しませんでした。 「不承認」 - 招待を拒否しました。 '未定' - 暫定的に招待状を受け入れました '承認済み' - 招待状を受け入れました。

これに加えて、あなたは現在ログインしているユーザーで

CalendarId表現するカレンダーIDの値として単語「主」を使用することができます。カレンダー識別子を。カレンダーIDを取得するには、calendarList.listメソッドを呼び出します。現在ログインしているユーザーのプライマリカレンダーにアクセスする場合は、「primary」キーワードを使用します。 (文字列)。

idの場合、 "iCalUID"ではなくEvents.list APIによって返される "id"を使用する必要があります。これらの2つは、hereとは異なります。

その他のフィールドは、(出席者の)電子メール、開始日、終了日です。詳細については

、あなたは公式ドキュメントを見ることができ、下記のリンク: https://developers.google.com/google-apps/calendar/v3/reference/events

1

はここでPATCHを使用して、Javaでの例です。変更したい情報だけでイベントオブジェクトを作成します。この場合、出席者と応答ステータスが表示されます。このコードは出席者として実行されています。

final Event event = new Event() 
    .setAttendees(Arrays.asList(new EventAttendee().setEmail(email) 
    .setResponseStatus("declined"))); 
try 
    getCalendarService(googleAccountCredential).events() 
     .patch(CALENDAR_PRIMARY, calendarEventId, event) 
     .setSendNotifications(true) 
     .setOauthToken(googleAccountCredential.getToken()).execute(); 
    return true; 
} catch (final Exception ex) { 
... 
    return false; 
} 

      } 
関連する問題