【问题标题】:Google Analytics V3 ASP.Net API beta 1.5 OAuth2 errorGoogle Analytics V3 ASP.Net API beta 1.5 OAuth2 错误
【发布时间】:2013-09-09 15:07:39
【问题描述】:

我正在使用带有服务帐户的 Google API 的最新 beta 1.5 (1.5.0.28991),并且在进行身份验证时在 AssertionFlowClient 行上遇到此错误:

找不到方法:'Void DotNetOpenAuth.OAuth2.ClientBase..ctor(DotNetOpenAuth.OAuth2.AuthorizationServerDescription, System.String, System.String)'。

DotNetOpenAuth V4.3.1.13153

AuthorizationServerDescription desc = GoogleAuthenticationServer.Description;
X509Certificate2 key = new X509Certificate2(key_file, key_pass, X509KeyStorageFlags.Exportable);
AssertionFlowClient client = new AssertionFlowClient(desc, key) { ServiceAccountId = client_id, Scope = scope };

我对此很头疼 - 任何指点都将不胜感激。

【问题讨论】:

  • 很难说到底是什么问题。您是否添加了对 Google.Apis 和 Google.Apis.Authentication 的 NuGet 引用?您可以尝试编译我们的 Plus 示例 (code.google.com/p/google-api-dotnet-client/source/browse/…) 吗?它也使用服务帐户。让我知道它是否有效,如果有效 - 尝试继续并更改代码以适应分析 API。
  • 谢谢你,peleyal。我错过了 Google.Apis.Authentication,您的建议和下面的答案帮助我解决了问题。

标签: asp.net google-analytics oauth-2.0 google-api-dotnet-client


【解决方案1】:

从...下载示例

https://code.google.com/p/google-api-dotnet-client/source/browse/Plus.ServiceAccount/Program.cs?repo=samples

(下载链接证书不好,不能用Chrome下载,必须用IE)

从“Plus.ServiceAccount”项目中窃取 packages.config 和 app.config 文件并将它们放入您的项目中。

重新加载您的项目,然后在“包管理器控制台”上,当它要求下载包时,让它下载。

这让我的错误消失了。我一定是用了错误的版本……什么的。

【讨论】:

  • 完美 - 谢谢! packages.config 中错过了 Google.Apis.Authentication
【解决方案2】:

我昨天查看了分析 API,发现它没有记录,也没有样本等。

无论如何,我创建了一个库,您可以使用它通过几行轻松访问分析,并将返回的数据直接数据绑定到 DataTables,它在 github 上是开源的,所以请随时贡献:)

https://github.com/rmostafa/DotNetAnalyticsAPI

用法

Analytics.AnalyticsManager manager = new Analytics.AnalyticsManager(Server.MapPath("~/bin/privatekey.p12"), "YOUR_EMAIL");
            manager.LoadAnalyticsProfiles();

List<Analytics.Data.DataItem> metrics = new List<Analytics.Data.DataItem>();
metrics.Add(Analytics.Data.Session.Metrics.visits);
List<Analytics.Data.DataItem> dimensions = new List<Analytics.Data.DataItem>();
dimensions.Add(Analytics.Data.GeoNetwork.Dimensions.country);


System.Data.DataTable table = manager.GetGaDataTable(DateTime.Today.AddDays(-3), DateTime.Today, metrics, dimensions, null, metrics);

所有 Google API 报告命令都有直接的代码映射,其分类方式与 API 相同,因此即使根本不阅读 API 文档,您也可以这样做,因为所有功能都记录在属性中,我编写了解析完整的代码api 文档和资源化的 Metrics、Dimensions、Calculated Features 在我从物理类生成的 XML 中,您可以像上面的示例一样直接使用它很有趣:) 享受

【讨论】:

    猜你喜欢
    • 2013-08-17
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2014-12-04
    相关资源
    最近更新 更多