2012-01-16 19 views
7

Próbuję użyć najnowszych bibliotek klienta .NET, aby uzyskać dostęp do wersji 3.0 interfejsu API Google Analytics (Core Reporting API). Zarejestrowałem swoją aplikację w konsoli Google APIs i użyłem protokołu OAuth 2.0 do uzyskiwania dostępu do interfejsu API.Google Analytics API V3.0: Używanie OAuth 2.0 z podanym hasłem logowania w kodzie programu

Ponieważ nie ma jeszcze przykładów korzystania z interfejsu API Google Analytics, Użyłem sample, który demonstruje najprostszy przypadek użycia dla usługi OAuth2 i zastosował ten schemat do mojego kontekstu - z powodzeniem.

(Uwaga: Ja również znaleźć help do skorygowania błędów w kodzie źródłowym biblioteki Google.Apis.Analytics.v3.dll)

Jeśli użyję mojego programu, jestem zobowiązany, aby zalogować się do Google, udzielić pozwolenia na mój wniosek i skopiować kod autoryzacyjny.

Chciałbym pominąć ten przepływ, wpisując moje hasło logowania do kodu programu (- w czystym tekście). Mój problem polega na tym, że nie mogę znaleźć tej funkcji w bibliotekach. W Google Analyitcs w wersji 2.3 działało z prostymi liniami C#:

AnalyticsService asv = new AnalyticsService(""); 
asv.setUserCredentials(CLIENT_USERNAME, CLIENT_PASS); 

Czy ktoś może mi pomóc?

Odpowiedz

5

Wprowadzenie nazwy użytkownika i hasła jest problemem z zabezpieczeniami. Google dodał dostęp offline tylko w tym celu.

Użyj odświeżającego tokena. Możesz to zapisać i używać go do uzyskiwania dostępu do danych analitycznych bez konieczności logowania za każdym razem, co jest zasadniczo tym, co robisz z opisaną nazwą użytkownika i hasłem.

instrukcje dostęp offline można znaleźć tutaj:

http://code.google.com/apis/accounts/docs/OAuth2WebServer.html#offline

+0

Dzięki wielkie! Przyjrzę się temu ... –

+4

Zadziałało. Znalazłem przydatny [przykład] (http://stackoverflow.com/a/7489566/1151937), który pokazuje, jak używać Odświeżenie tokenów w Bibliotece Google. –

+0

@ michael-ki Excellent! Cieszę się, że znalazłeś przykład. +1 za aktualizację, aby pomóc innym. –

0

Dobrze jest to stara sprawa. Ale oto przykład kodu, jak sprawić, by działało.

PM> install-package google.apis -pre 
PM> install-package google.apis.analytics.v3 -pre 

pobrać klienta tajny plik json z konsoli Apis i dodać go do projektu o nazwie client_secret.Json. Być może trzeba będzie zmienić właściwości, aby utworzyć zawartość akcji i skopiować na nią, jeśli jest ona nowsza.

// Autentication 
UserCredential credential; 
using (var stream = new System.IO.FileStream("client_secret.json", System.IO.FileMode.Open,  System.IO.FileAccess.Read)) 
{ 
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
    GoogleClientSecrets.Load(stream).Secrets, 
    new[] { AnalyticsService.Scope.AnalyticsReadonly }, 
    "user", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result; 
    } 

// tworzy usługę

AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer() { 
    HttpClientInitializer = credential, 
    ApplicationName = "Analytics API sample", 
}); 
Powiązane problemy