Pergunta

Eu tenho o seguinte código para consultar o Google Analytics usando a 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)
{
.... 
}

Gostaria de atualizar a API v3 mais recente, mas acho difícil ver exemplos simples on-line em que alguém se autentica usando o Google oAuth e depois consulta os dados do Google Analytics.

Eu instalo o seguinte pacote NuGet:Install -package google.apis.analytics.v3 -pre Em uma nova solução C#, ela me fornece as seguintes referências adicionais:

  • Google.Apis
  • Google.Apis.Analytics.v3
  • Google.Apis.Auth
  • Google.Apis.Auth.PlatformServices
  • Google.Apis.PlatformServices
  • log4net
  • Newtownsoft.Json
  • Zlib.Portátil

Eu vi este artigo, que parece executar um código semelhante ao que preciso executar:Como enviar consulta de relatório analítico do Google usando ASP.net API analítica do Google versão 3 (Google.Apis.Analytics.v3.dll)?

No entanto, nenhum código neste artigo resolve o uso das bibliotecas do Google que foram referenciadas no NuGet.

O que estou perdendo e como posso completar o quadro.Como faço para autenticar e executar minha consulta no Google Analytics.

Não gostei do Google por não ter um tutorial on-line fácil de seguir para oferecer suporte à sua biblioteca .net!

Agradecemos antecipadamente por qualquer conselho!

Foi útil?

Solução

Acessar o Google Analtyics com a biblioteca cliente v3 é muito bom.A única coisa que não descobri é como enviar um token de atualização que armazenei no banco de dados.Estou preso com aquele que ele armazena para mim no PC.

Solicitar autenticação:Todo o material secreto do cliente é armazenado em client_secret.json. Você pode baixar o arquivo do google apis consol.Irá aparecer uma janela do navegador se não tiver aprovação, se tiver, simplesmente continuará.

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;
  }

}

Agora para acessar o Google Analytics você precisa fazer um serviço analítico.

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

Todas as suas chamadas agora serão executadas contra isso.

O seu deve acabar sendo algo como:

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";

Eu tenho uma postagem no blog que aborda a maioria das diferentes chamadas que você pode fazer. http://daimto.com/google-analytics-api-v3-with-c/

Outras dicas

Eu estava tendo o mesmo problema.Eu instalei os pacotes nuget, mas recebi o mesmo erro "Não foi possível carregar o arquivo ou assembly 'Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.16.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou uma de suas dependências .O sistema não consegue encontrar o arquivo especificado." Tentei remover e reinstalar os pacotes nuget sem sucesso.Então, acabei procurando o arquivo Microsoft.Threading.Tasks.Extensions.Desktop.dll e ele foi encontrado na pasta net40.Copiei para minha pasta bin e funcionou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top