2017-07-25 9 views
0

こんにちは挿入されていない場合、私は現在、asp.netコアで任命ファインダーを構築していGoogleカレンダーのアピV3のasp.netコード200、まだ

。カレンダーにアクセスするとコード200を取得できました。

ただし、送信したいイベントはGoogleカレンダーで保存されません。コンソールダッシュボードには、受信したことが示されます。アカウントには1つのカレンダーしかありません。これまで

マイコード:

public void InsertIntoCalendar() 
    { 
     var Cal = new CalendarEvents(); 
     var newEvent = Cal.CreateEvent("TestEvent", "RandomLocation", "Description", "2017-07-28"); 
     var service = CreateService(); 

     service.Events.Insert(newEvent, serviceAccountEmail).Execute(); 

      String calendarId = "primary"; 
      EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId); 
      Event createdEvent = request.Execute(); 
    } 

CalendarEventsはいくつかの方法でイベントを作成していますクラスです。 イベントクラス自体を使用しようとしましたが、結果は同じです。サービスは、このように作成され

:CSHTMLページ

 private CalendarService CreateService() 
    { 
     string keyFilePath = "random.p12; 

     var certificate = new X509Certificate2(keyFilePath, "notasecret", X509KeyStorageFlags.Exportable); 

     ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer(serviceAccountEmail) 
      { 
       Scopes = Scopes 
      }.FromCertificate(certificate)); 

     // Create the service. 
     CalendarService service = new CalendarService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      //ApplicationName = "ShowCase", 
     }); 

     return service; 
    } 

、私はかみそりで次の操作を行います。

  CalendarConnection TestConnection = new CalendarConnection(); 
      TestConnection.InsertIntoCalendar();  

私は、コード200を取得していますが、イベントはにinstertedされていませんカレンダー。私はこれについてのperlの記事を読んだが、私はそれから何も作ることはできない。

私は間違っていますか?

ありがとうございます。

編集: 私は、コンソールアプリケーションからevents.listを呼び出すと、私はイベントを見ることができます:

TEST(2017年7月26日午後08時58分08秒)

TEST(2017年7月26日20:私は、カレンダーでそれらが表示されないのはなぜ58:57)

TEST(2017年7月26日午前21時03分38秒)

TEST(2017年7月26日21時05分27秒)

答えて

0

エラーが見つかりました。

問題は実際に私のコードではありませんでした。

まず、カレンダーIDとして「プライマリ」を使用すると、アカウントのカレンダーIDは何とかなりません。イベントはイベントから取得できますが、カレンダーには表示されません。同僚は、サンドボックスカレンダー(またはバグ)のようなものだと提案しました。

私はアカウント(カレンダーの設定で見つけるあなたのプライマリまたはアドレスのいずれかの電子メールアドレス)からのカレンダIDを入力した後、私はエラーに403

を得た。これは共有しないことによって引き起こされましたサービスアカウントの住所(通常は[email protected]のようなサービスアカウントを作成している間にGoogleによって作成されたアカウント)を持つカレンダー。だから、COM)

、Googleカレンダーでイベントを作成したい場合:

  1. https://console.developers.google.com

  2. でサービスアカウントを作成し、サービスアカウントのメールアドレスとカレンダーを共有します。

  3. (たclient_secrets.jsonを使用するか、または1)上記のコードを使用し

注:それは常にあなたのコードが、不足しているいくつかの管理作業ではありません。ここ

コード:

public void InsertIntoCalendar() 
{ 
    var Cal = new CalendarEvents(); 
    var newEvent = Cal.CreateEvent("TestEvent", "RandomLocation", "Description", "2017-07-28"); 
    var service = CreateService(); 

    service.Events.Insert(newEvent, serviceAccountEmail).Execute(); 

     String calendarId = "[email protected]"; // or the e-mail address of the Google account if you want to use the primary calendar 
     EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId); 
     Event createdEvent = request.Execute(); 
} 
関連する問題