2012-04-16 90 views
0

我正在嘗試編寫一項服務,通過Windows服務或控制檯應用程序提取Google Analytics數據。來自控制檯應用程序的Google Analytics數據與C#

無論我怎麼努力,我無法使用OAuth

授權我的應用程序,我可以做這樣的事情

var analyticsService = new AnalyticsService("MyApp"); 
const string baseUrl = "https://www.google.com/analytics/feeds/data"; 

var dataQuery = new DataQuery(baseUrl); 

dataQuery.Ids = TableId; 
dataQuery.Dimensions = "ga:pagePath,ga:date"; 
dataQuery.Metrics = "ga:avgTimeOnPage,ga:pageviews,ga:uniquePageviews"; 
dataQuery.Sort = "ga:date"; 
dataQuery.GAStartDate = "2012-03-01"; 
dataQuery.GAEndDate = "2012-04-15"; 

Feed = analyticsService.Query(dataQuery); 

,如果我用GDataCredentials與我的帳戶的用戶名/密碼也能正常工作。我的印象是,這隻能給我每天200個請求。我真的需要一些示例代碼的幫助,以便如何使它與oAuth一起工作以支持50K請求。我完全擊中了這裏的牆。

只是爲了澄清:

我有一個Google分析佔了我的網站。我將永遠從這一個帳戶拉。什麼是最簡單的方法來做到這一點,而不會降低API的極限值?

非常感謝!

+0

不是重複的,因爲這個答案不能用於開箱 – 2012-04-16 14:15:34

回答

0

可以找到答案here.

從原作者行情:

爲了使它工作,你需要DotNetOpenAuth從 http://www.dotnetopenauth.net/和GDATA從 http://code.google.com/p/google-gdata/

在DotNetOpenAuth有示例項目名爲OAuthConsumer,您需要 。將其更改爲requiest授權分析:

GoogleConsumer.RequestAuthorization(google, GoogleConsumer.Applications.Analytics); 

這將讓你令牌和令牌密鑰。您可以使用它們像這樣:

GOAuthRequestFactory requestFactory = new GOAuthRequestFactory("cp", TokenManager.ConsumerKey); //ConsumerKey actually is the name of web application 
    requestFactory.ConsumerKey = TokenManager.ConsumerKey; 
    requestFactory.ConsumerSecret = TokenManager.ConsumerSecret; 
    requestFactory.Token = AccessToken; 
    requestFactory.TokenSecret = TokenManager.GetTokenSecret(AccessToken); 
    requestFactory.UseSSL = true; 
    AnalyticsService service = new AnalyticsService(requestFactory.ApplicationName); // acually the same as ConsumerKey 
    service.RequestFactory = requestFactory; 

    const string dataFeedUrl = "https://www.google.com/analytics/feeds/data"; 

    DataQuery query1 = new DataQuery(dataFeedUrl); 
+0

對,我的問題是,我試過了,它不工作:)它缺少各種引用,API已經改變,庫的版本等等。你能提供一個大樣本嗎? – 2012-04-16 14:08:23