如何使用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示例开始。
// 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