【问题标题】:How to get Google Analytics data using OAuth?如何使用 OAuth 获取 Google Analytics 数据?
【发布时间】:2011-06-27 16:48:19
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 分析也可以分享给特定用户(基于电子邮件)

标签: c# .net oauth google-analytics authsub


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    最好通过创建Google Registered Application 来管理身份验证,因为这使您可以在没有安全警告的情况下进行身份验证(并且就此而言,安全漏洞)。

    支持三种形式的身份验证; “安全”/无密码的是 OAuthAuthSub(这是 Google 专有的 OAuth 版本);硬编码的用户名和密码版本被 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 选项卡)。

    【讨论】:

    • 链接到code.google.com/apis/gdata/client-cs.html 没有提供任何合理的例子,显示一个使用ClientLogin 使用电子邮件和密码的例子,这是不可接受的。谷歌文档根本没有帮助。我不知道如何手动生成所有这些庞大繁琐的请求,然后解析响应。对于没有多年经验的人来说,这项任务在我看来是没有希望的。
    • @Burjua 查看我的 2 个编辑。他们应该提供帮助。我知道你正在经历什么——我必须为 PHP 做这件事,而且要开始工作并不容易。但是这些指南很有帮助。
    【解决方案3】:

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

    要使其正常工作,您需要来自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 的示例项目。 将其更改为请求分析授权:

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

    您可以使用此服务,例如 herehere

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

    【讨论】:

    • 我下载了所有这些库,但没有 service.RequestFactory = requestFactory; 这样的成员。另外,您是否偶然知道如何在命名空间 Google.Apis.Analytics.v3 中使用 Analytics 类
    【解决方案4】:

    我认为你不需要搞乱 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
    

    【讨论】:

    • 这更适合开发。如果您在生产环境中部署它,除了安全风险之外,您每天的请求上限为 200 个
    猜你喜欢
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2018-09-26
    相关资源
    最近更新 更多