如何使用OAuth获取Google Analytics数据?

Hy家伙,我们正在开发一个系统,为用户提供访问Google Analytics的权限。 我正在尝试以这种方式实现它,因此用户无需在我们的网站上输入他们的Google登录凭据,因此尝试使用他们的登录来使其工作。

我有一个解决方案,可以使用用户的电子邮件和密码进行分析。 我正在寻找一个解决方案,不需要用户的电子邮件和密码,但找不到任何东西。

怎么做到呢? 任何建议或链接将不胜感激。

谢谢

好吧,伙计们,经过几天的挣扎,我终于弄明白了。 互联网上没有文档,以前做过这些文档的人不想出于某种原因分享他们的成功。 我发现这个讨论对我很有帮助。

要使其工作,您需要来自http://www.dotnetopenauth.net/的 DotNetOpenAuth和来自http://code.google.com/p/google-gdata/的 gdata

所以

 using DotNetOpenAuth.ApplicationBlock; using DotNetOpenAuth.OAuth; using Google.GData.Client; using Google.GData.Analytics; 

在DotNetOpenAuth中,您需要一个名为OAuthConsumer的示例项目。 将其更改为对Google Analytics的最高授权:

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

这会让你的Token和Token保密。 您可以像这样使用它们:

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

您可以在此处或此处使用此服务

最后一件事,你将无法在localhost上尝试测试它,所以你需要一个必须在这里注册Google的域名才能获得消费者密钥和秘密

有一个用于Google数据身份validation的.NET / C#类可用于访问Google Analytics数据导出API(因为API是Google数据标准的一部分,但您可能需要进行特定于Google Analytics的调整。)*

通过创建Google注册应用程序可以最好地管理身份validation,因为这样您就可以在没有安全警告的情况下进行身份validation(并且就此而言,安全性失误)。

支持身份validation有三种forms; ‘安全’/无密码的是OAuth和AuthSub (这是OAuth的Google专有版本); 谷歌将硬编码的用户名和密码版本称为“ClientLogin”,并且不被认为是安全的,也不适合多用户应用程序。

*(因为你标记了问题.net c# )

编辑:有关在.NET库中使用AuthSub或OAuth的更多详细信息:

AuthSubSupport: http : //code.google.com/p/google-gdata/wiki/AuthSubSupport

有关如何使用库进行OAuth身份validation的代码示例: http : //code.google.com/apis/gdata/docs/auth/oauth.html#2LeggedOAuth (单击.NET选项卡)。

使用OAuth的基础知识如下: http : //code.google.com/apis/accounts/docs/OpenID.html#working

使用OAuth进行身份validation: http : //code.google.com/apis/accounts/docs/OAuth.html

在使用OAuth对用户进行身份validation后,您将获得与您从Google的登录API中获取的请求令牌相同的请求令牌。 从那里,它应该与用户名/密码相同。

我不认为你需要弄乱OAuth。

谷歌分析API允许您传递凭据。 从这个数据Feed示例开始。

http://code.google.com/p/google-gdata/source/browse/trunk/clients/cs/samples/Analytics_DataFeed_Sample/dataFeed.cs

 // Configure GA API and do client login Authorization. AnalyticsService asv = new AnalyticsService("gaExportAPI_acctSample_v2.0"); asv.setUserCredentials(clientUser, clientPass); 

在此处下载客户端库

http://code.google.com/apis/analytics/docs/gdata/gdataLibraries.html

要了解数据查询,请使用此方法,然后将值复制到上面的示例中

 http://code.google.com/apis/analytics/docs/gdata/gdataExplorer.html