2016-04-16 4 views
-1

Ich versuche, eine Verbindung mit Google Kalender-API herzustellen, aber ich erhalte eine FileNotFound-Ausnahme. Wenn die Zeile "new FileStream ('client_secret.json') ..." ausgeführt wird, erscheint folgender Fehler. Ich habe jedoch manuell in meinem Verzeichnis gesucht, und ich sah die genaue Datei, klar als Tag. Was mache ich hier falsch?Warum erhalte ich diesen Fehler? (Datei nicht gefunden Ausnahme)

Eine nicht behandelte Ausnahme des Typs 'System.IO.FileNotFoundException' ist in mscorlib.dll aufgetreten Zusätzliche Informationen: \ Benutzer \ Zach Straley \ Dokumente \ Visual Studio 2015 \ Projects \ 255Cal \: Konnte Datei ‚C finden 255Cal \ bin \ Debug \ client_secret.json '.

using Google.Apis.Auth.OAuth2; 
using Google.Apis.Calendar.v3; 
using Google.Apis.Calendar.v3.Data; 
using Google.Apis.Services; 
using Google.Apis.Util.Store; 
using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading; 
using System.Threading.Tasks; 

namespace CalendarQuickstart 
{ 
    class Program 
    { 
     // If modifying these scopes, delete your previously saved credentials 
     // at ~/.credentials/calendar-dotnet-quickstart.json 
     static string[] Scopes = { CalendarService.Scope.CalendarReadonly }; 
     static string ApplicationName = "Google Calendar API .NET Quickstart"; 

     static void Main(string[] args) 
     { 
      UserCredential credential; 

      using (var stream = 
       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) 
      { 
       string credPath = System.Environment.GetFolderPath(
        System.Environment.SpecialFolder.Personal); 
       credPath = Path.Combine(credPath, ".credentials/calendar-dotnet-quickstart.json"); 

       credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets, 
        Scopes, 
        "user", 
        CancellationToken.None, 
        new FileDataStore(credPath, true)).Result; 
       Console.WriteLine("Credential file saved to: " + credPath); 
      } 

      // Create Google Calendar API service. 
      var service = new CalendarService(new BaseClientService.Initializer() 
      { 
       HttpClientInitializer = credential, 
       ApplicationName = ApplicationName, 
      }); 

      // Define parameters of request. 
      EventsResource.ListRequest request = service.Events.List("primary"); 
      request.TimeMin = DateTime.Now; 
      request.ShowDeleted = false; 
      request.SingleEvents = true; 
      request.MaxResults = 10; 
      request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime; 

      // List events. 
      Events events = request.Execute(); 
      Console.WriteLine("Upcoming events:"); 
      if (events.Items != null && events.Items.Count > 0) 
      { 
       foreach (var eventItem in events.Items) 
       { 
        string when = eventItem.Start.DateTime.ToString(); 
        if (String.IsNullOrEmpty(when)) 
        { 
         when = eventItem.Start.Date; 
        } 
        Console.WriteLine("{0} ({1})", eventItem.Summary, when); 
       } 
      } 
      else 
      { 
       Console.WriteLine("No upcoming events found."); 
      } 
      Console.Read(); 

     } 
    } 
} 
+0

Hallo. Wenn Sie Hilfe benötigen, ist die beste Sache zu tun, Ihren Code und die Fehler, die Sie bekommen – ironman

+0

Meine ganze Frage ist hyperlinked ... – Zach

+0

Nicht zu sehen, den Hyperlink – ironman

Antwort

1

Ihre client_secret.json Datei muss in das Build-Verzeichnis kopiert werden (zur Zeit auf Ihre bin \ Debug gesetzt).

Wenn Sie Visual Studio verwenden, besteht der einfachste Weg darin, diese Datei zu Ihrer Lösung hinzuzufügen, dann darauf zu klicken und die Option In Ausgabeausrichtung kopieren zu aktivieren.

enter image description here

+0

Ich vermute, das ist sein Problem auch. Es scheint nicht wahrscheinlich, dass er diese Datei im Verzeichnis \ Debug hätte. –

Verwandte Themen