2016-07-16 13 views
0

wie dieses Ich führe Genehmigung zuzugreifen:Erste ein „Nicht genügend Permission [403]“ Fehler beim Versuch Google Search Console API

 ClientSecrets secrets; 
     using (var stream = new FileStream(keyFile, FileMode.Open)) 
     { 
      secrets = GoogleClientSecrets.Load(stream).Secrets; 
     } 

     var scopes = new[] 
     { 
      AnalyticsService.Scope.AnalyticsReadonly, 
      WebmastersService.Scope.WebmastersReadonly, 
     }; 

     var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
      secrets, 
      scopes, 
      AppSettings.Instance.UserName, 
      CancellationToken.None).Result; 

     var service = new WebmastersService(new BaseClientService.Initializer 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = "MyApp", 
     }); 

     var sites = service.Sites.List().Execute(); 

Danach kann ich eine Instanz von WebmastersService erfolgreich schaffen; Alle Operationen schlagen jedoch mit dem Fehler "Unzureichende Berechtigung" fehl. Die Google Search Console-API ist bereits auf der Website https://console.cloud.google.com/apis/enabled aktiviert. Ich kann mit denselben Anmeldedaten erfolgreich auf das Google Analytics-API zugreifen.
Irgendwelche Ideen was mache ich falsch?

Antwort

0

Zeit ist vergangen, aber es könnte noch für jemanden nützlich sein ... :)

Ich verwende X509Certificate Klasse meine Schlüsseldatei zu laden, und es funktioniert wie ein Charme.

ConnectionEmail = "[email protected]"; 
ConnectionPassword = "notasecret"; 
ConnectionKey = File.ReadAllBytes("keyfile.p12"); 

Scopes = new[] 
{ 
    WebmastersService.Scope.Webmasters 
}; 

X509Certificate2 certificate = new X509Certificate2(ConnectionKeyBytes, ConnectionPassword, X509KeyStorageFlags.Exportable); 

Service = new WebmastersService(new BaseClientService.Initializer() 
{ 
    HttpClientInitializer = new ServiceAccountCredential(
     new ServiceAccountCredential.Initializer(ConnectionEmail) { Scopes = Scopes, }.FromCertificate(certificate) 
    ) 
}); 
Verwandte Themen