Google C # API, cambiando da V2.3 a V3
-
26-12-2019 - |
Domanda
Ho il seguente codice per interrogare Google Analytics utilizzando l'API C # V2.3:
string username = "SAMPLE@SAMPLE.COM";
string pass = "PASS";
string gkey = "?key=XXXXXXXXXXXXXXXXXXXXXXXXXXX";
string dataFeedUrl = "https://www.google.com/analytics/feeds/data" + gkey;
AnalyticsService service = new AnalyticsService("API Sample");
service.setUserCredentials(username, pass);
DataQuery query1 = new DataQuery(dataFeedUrl);
query1.Ids = "ga:34197921";
query1.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
query1.Metrics = "ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue";
query1.Sort = "ga:date,ga:hour";
query1.NumberToRetrieve = 50;
query1.GAStartDate = new DateTime(2012, 1, 2).ToString("yyyy-MM-dd");
query1.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
query1.StartIndex = 1;
DataFeed dataFeedVisits = service.Query(query1);
foreach (DataEntry entry in dataFeedVisits.Entries)
{
....
}
.
Vorrei aggiornare la nuova API V3 V3 ma trovare difficoltà a vedere qualsiasi semplice esempi online in cui qualcuno autentica utilizzando Google Oauth e poi interroga i dati di Google Analytics.
Installa il seguente pacchetto NUGET: install-package google.apis.analytics.v3 -pre In una nuova soluzione C #, mi dà i seguenti riferimenti aggiuntivi:
- .
- google.apis
- google.apis.analytics.v3
- google.apis.auth
- google.apis.auth.platformservices
- google.apis.platformservices
- log4net
- newtownsoft.json
- zlib.Portable
Ho visto questo articolo, che sembra eseguire un pezzo di codice simile a ciò che devo correre: Come inviare Google Query del rapporto analitico utilizzando ASP.NET Google Analytic API versione 3 (Google.apis.analytics.v3.dll)?
Tuttavia, nessuno dei codici in questo articolo si risolve utilizzando le librerie di Google che si riferiscono nella Nuget.
Cosa mi manca e come posso completare l'immagine. Come posso autenticare e eseguire la mia query su Google Analytics.
Pollici fino a Google per non avere un tutorial facile da seguire online per supportare la loro libreria .NET!
Grazie in anticipo per qualsiasi consiglio!
Soluzione
Accesso a Google Analtalici con V3 Client Library è davvero bello tbh.L'unica cosa che non ho funzionato è come inviarlo un rinfresco che ho memorizzato nel database.Sono bloccato con quello che memorizza per me sul PC.
Richiesta AUTENTICTICAZIONE: Tutte le schegge client sono memorizzate in client_secret.json è possibile scaricare il file da Google Apis Consol.Computerà una finestra del browser se non ha l'approvazione se lo fa, continuerà su.
private void Form1_Load(object sender, EventArgs e)
{
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;
}
.
}
Ora per accedere a Google Analytics è necessario effettuare un servizio di analisi.
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = "Analytics API sample",
});
.
Tutte le tue chiamate verranno ora eseguite contro questo.
Il tuo dovrebbe finire per essere qualcosa come:
DataResource.GaResource.GetRequest request = service.Data.Ga.Get(ga:34197921, new DateTime(2012, 1, 2).ToString("yyyy-MM-dd"), DateTime.Now.ToString("yyyy-MM-dd"), ""ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue");
request.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
.
Ho un post del blog che funziona anche se la maggior parte delle chiamate diffrent che puoi fare. http://daimto.com/google-analytics-api-v3-with-c /
Altri suggerimenti
Stavo avendo lo stesso problema.Avevo installato i pacchetti di Nuget, ma ottenere lo stesso errore "Impossibile caricare file o assembly" Microsoft.Threading.tasks.extensions.Desktop, versione= 1.0.16.0, cultura= neutro, pubblica direttoKoken= B03F5F7F14D50A3A 'o una delle sue dipendenze. Il sistema non trova il file specificato."Ho provato a rimuovere e reinstallare i pacchetti Nuget inutili.Quindi, alla fine ho appena cercato il file Microsoft.Threading.tasks.extensions.desktop.dll ed è stato trovato nella cartella NET40.L'ho copiato nella cartella Bin e poi ha funzionato.