9

嗨,伙计们,我们正在开发一个系统,该系统将为用户提供访问 Google Analytics 的权限。我正在尝试以这样的方式实现它,这样用户就不需要在我们的网站上输入他们的谷歌登录凭据,所以尝试使用他们的登录来让它工作。

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

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

谢谢

4

4 回答 4

11

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

要使其正常工作,您需要DotNetOpenAuthhttp://www.dotnetopenauth.net/http://code.google.com/p/google-gdata/gdata

所以

using DotNetOpenAuth.ApplicationBlock;
using DotNetOpenAuth.OAuth;

using Google.GData.Client;
using Google.GData.Analytics;

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

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

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

最后一件事,您将无法尝试对其进行测试,localhost因此您需要一个必须在此处向 Google 注册的域才能获取消费者密钥和秘密

于 2011-03-01T10:15:18.070 回答
1

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

最好通过创建Google 注册应用程序来管理身份验证,因为这允许您在没有安全警告的情况下进行身份验证(并且就此而言,安全漏洞)。

支持三种形式的身份验证;“安全”/无密码的是OAuthAuthSub(这是 OAuth 的 Google 专有版本);硬编码的用户名和密码版本被 Google 称为“ClientLogin”,不被认为是安全的或多用户应用程序的理想选择。

*(因为您标记了问题

编辑:有关将 AuthSub 或 OAuth 与 .NET 库一起使用的更多详细信息:

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

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

于 2011-02-15T16:59:14.810 回答
0

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

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

使用 OAuth 对用户进行身份验证后,您将获得与从 Google 登录 API 返回的请求令牌类似的请求令牌。从那里,它应该与用户名/密码相同。

于 2011-02-15T15:46:35.317 回答
-1

我认为您不需要弄乱 OAuth。

谷歌分析 api 可让您传递凭据。只需从这个数据馈送示例开始。

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
于 2011-10-20T17:19:01.623 回答