【问题标题】:Using GoogleAnalytics with a Service Account通过服务帐户使用 GoogleAnalytics
【发布时间】:2014-07-04 08:42:51
【问题描述】:

我正在尝试使用Google.Apis.Analytics.v3 客户端库来检索指标,我想使用Service Account。

根据 StackOverflow 上的文档和几个问题,我认为这应该可行。过去我已经针对 Google BigQuery 和 Google Cloud Storage API 使用过服务帐户,所以我认为我可以让它很容易地工作。

很遗憾,每次我对 Google Analytics 执行操作时,都会收到以下错误:

TokenResponseException: 附加信息:错误:“invalid_grant”,描述:“”,Uri:“”

为了记录,这里我做了什么:

  • 在 Google Developer Console 中创建了一个全新的项目。
  • 已启用 Google Analytics API。
  • 创建“服务帐户”客户端 ID。
  • 记下“客户 ID”、证书及其密码。
  • 将服务帐户“电子邮件地址”添加为对 Google Analytics 帐户具有完全权限的用户。

这是我用来连接到 Google Analytics 的代码:

private static AnalyticsService ConnectServiceAccount()
{
    const string serviceAccountId = "xxxxxxxxxx-xxxxxxxxxxxx.apps.googleusercontent.com";
    const string serviceAccountCertificate = "xxxxxxxxxxxxxxxxxxxxxxxxxx-privatekey.p12";
    const string applicationName = "";

    var certificate = GetServiceAccountCertificate(serviceAccountCertificate);
    var credentials = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountId)
    {
        Scopes = new[] {
            AnalyticsService.Scope.Analytics,
            AnalyticsService.Scope.AnalyticsEdit,
            AnalyticsService.Scope.AnalyticsManageUsers,
            AnalyticsService.Scope.AnalyticsProvision,
            AnalyticsService.Scope.AnalyticsReadonly
        },
    }.FromCertificate(certificate)
        );

    var service =
        new AnalyticsService(
            new BaseClientService.Initializer
            {
                GZipEnabled = true,
                HttpClientInitializer = credentials,
            });
    return service;
}

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我也问过同样的问题,但对于 php...
  • 等待答复...
  • 在帐户级别将服务帐户电子邮件地址添加为 Google Analytics 中的用户。它不能只在配置文件级别添加。

标签: google-analytics-api service-accounts


【解决方案1】:

您可以找到解决方案here

服务帐户是一个电子邮件地址,例如 @developer.gserviceaccount.com

【讨论】:

    【解决方案2】:

    您似乎使用了错误的serviceAccountID。应该是@developer.gserviceaccount.com结尾的那个

    而且,您只需要授予该电子邮件 Read and Analyze 权限,而不是完全控制您的分析帐户。

    我还认为它需要applicationName。这是 GA 控制台中的应用名称。

    【讨论】:

      猜你喜欢
      • 2015-06-12
      • 1970-01-01
      • 2022-11-08
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      相关资源
      最近更新 更多