2016-04-30 7 views
0

特定のユーザーの共有Googleカレンダーをすべて取得するにはどうすればいいですか?私はService Accountを持っているので、私はユーザーの許可を求める必要はありません。どのように特定のユーザーのすべての公開カレンダーを取得するには?

実際、私はC#で小さなアプリケーションを準備しています。私は特定のユーザの電子メールのためのイベントを追加する必要がある場合、私の単純なDO:

Event myEvent = new Event 
{ 
    Summary = "Appointment" 
    Location = "Somewhere", 
    ... 
    Attendees = new List<EventAttendee>() 
    { 
      new EventAttendee() { Email = "[email protected]"} 
    } 
}; 

だからあなたが見ることができますどのように私はAttendeesプロパティでユーザーのemailを渡します。これにより、特定のユーザーのメインカレンダーに予定を入れることができます。

私が知りたいことは次のとおりです。Google Calendar共有のためにどうすればよいですか?このように、アプリケーションは、ユーザーの電子メール、彼の公開カレンダーのリストに1つを選択し、私は指定された電子メールとカレンダーにイベントを置くことができます。

私はこのような何かしようとした:私はすべての電子メールを指定していませんので、私は右、APIは私のAPIの電子メールへのアクセスを試みると仮定「原因、

var calendars = service.CalendarList.List().Execute().Items; 

foreach (CalendarListEntry entry in calendars) 
{ 
    entry.Summary; 
} 

しかしcalendarsリターンCount = 0を? CalendarListの方法でカレンダーの一覧を取得するユーザーのメールをAPIにどのように伝えることができますか?

答えて

1

サービスアカウントはありませんあなたはダミーのアカウントです。自分のGoogleカレンダーアカウントで作成したカレンダーにサービスアカウントのアクセス権(共有のみ)を与えることができる2つのオプションがあり、そのカレンダーにinsertを追加することも、サービスアカウントのGoogleカレンダーで新しいカレンダーを作成することもできますアカウント。

どちらの方法でも、新しいイベントを作成し、そのイベントに人を追加することができます。その後、誰かを追加したい場合はevents.instertを使用し、通知を設定します。ユーザーはメールを受け取って、自分の個人的なGoogleカレンダーに追加することができます。

別の回答でお勧めしたcalendar.listをスキップしてください。 IMOカレンダーリストは、あなたがWebビューでアクセスできるカレンダーのリストのほんの少しのものです。左下のリスト。本当にそれを使用したい場合は、上記で作成したカレンダーを追加してサービスアカウントカレンダーリストに追加するには、calendar.list.insertを使用する必要があります。しかし、私は言ったように私はサービスアカウントのカレンダーリストのポイントを見ていない。

+0

非常に興味深い答えは、私のアプリの目標は、ユーザーが彼のプライベートcalendarioを選択し、それにサービスを置くことができるようにユーザーのカレンダーを表示することです。しかし、私はOAuthを使用し、私のアプリを使用するために彼に許可を求める必要があると思います。 – Dillinger

+1

あなたがユーザーのカレンダーにアクセスする必要がある場合は、Oauth2を使用する必要があります。その後、それらをサービスアカウントに追加することができます。 – DaImTo

0

GoogleカレンダーAPIを使用して、公開カレンダーのイベントを検索して表示することができます。権限がある場合は、カレンダーのプライベートカレンダーや予定にアクセスして変更することもできます。

これを実行してサンプルコードを確認するには、Get Started with the Calendar APIに記載されているクイックスタートガイドの指示に従ってください。

そして、あなたはOAuth 2.0の認証を有効にした後、CalendarList: listによってカレンダーのリストを取るために、あなたがサンプルフォーマットで追加のパラメータを使用してHTTPリクエストを送信することがあります。

GET https://www.googleapis.com/calendar/v3/users/me/calendarList

+0

だから私は彼のカレンダーのリストを取得する前に、ユーザーに許可を求める必要があると思います。私は実際にサービスアカウントを持っており、私は自分のサービスアカウントで共有カレンダーだけを見ることができます。しかし、私が正しく理解している場合、ユーザーが彼にカレンダーIDを指定しても、彼の許可なくカレンダーにイベントを追加することはできません。これはどのように動作するのですか、あなたは同意しますか? – Dillinger

+0

カレンダーのIDだけでカレンダーにイベントを追加することはできません。パブリックに設定されている場合を除きます。 – DaImTo

関連する問題