提问者:小点点

刷新OAuth2令牌时出错{"错误":"invalid_grant"}


请帮助我了解错误在哪里。

美国石油学会

谷歌Api PHP v3,关键。p12是中的文件。zip收集API(或者我在哪里找到它?)

我用XXXXXXXXX屏蔽了我的数据

请原谅我的英式英语

gaphp.php

<?php

      require_once 'Google/Client.php';
      require_once 'Google/Service/Analytics.php';

      $client_id = 'xxx-xxx.apps.googleusercontent.com';
      $service_account_name = 'xxx-xxx@developer.gserviceaccount.com';
      $keyfile = 'key.p12';
      $redirect_url = 'http://example.com/service/ga/gaphp.php';
      $client_secret = 'xxxxxxxxxxxxxxxxxxxxx';

      // Initialise the Google Client object
      $client = new Google_Client();
      $client->setApplicationName('My application');
      $client->setRedirectUri($redirect_url);
      $client->setClientSecret($client_secret);

      $client->setAssertionCredentials(
              new Google_Auth_AssertionCredentials(
                  $service_account_name,
                  array('https://www.googleapis.com/auth/analytics'),
                  file_get_contents($keyfile)
              )
      );

      // Get this from the Google Console, API Access page
      $client->setClientId($client_id);
      $client->setAccessType('offline_access');
      $analytics = new Google_Service_Analytics($client);

      // We have finished setting up the connection,
      // now get some data and output the number of visits this week.

      // Your analytics profile id. (Admin -> Profile Settings -> Profile ID)
      $analytics_id   = 'ga:xxxxxx';
      $lastWeek       = date('Y-m-d', strtotime('-1 week'));
      $today          = date('Y-m-d');

      try {
          $results = $analytics->data_ga->get($analytics_id, $lastWeek, $today,'ga:visits');
          echo '<b>Number of visits this week:</b> ';
          echo $results['totalsForAllResults']['ga:visits'];
      } catch(Exception $e) {
          echo 'There was an error : - ' . $e->getMessage();
      }

?>

错误

There was an error : - Error refreshing the OAuth2 token, message: 'Protection: 1; mode=block Server: GSE Alternate-Protocol: 443:quic Transfer-Encoding: chunked { "error" : "invalid_grant" }'

共2个答案

匿名用户

我昨天刚让我的分析与一个服务帐户一起工作-所以我可能能够提供帮助。从控制台,https://console.developers.google.com/project,您可以选择您的项目并转到“API”

我在GitHub上使用了以下代码:https://github.com/google/google-api-php-client/blob/master/examples/service-account.php

这个例子是针对Books API的,所以只需将“Books”替换为“Analytics”,将“Books”替换为“Analytics”。填写您的服务帐户凭据,并记住将您的服务帐户电子邮件添加到您的google analytics属性。

匿名用户

您只需确认您的服务帐户电子邮件id与google analytics帐户关联,并具有适当的权限。

你要确定的第二件事。上述步骤编译后生成P12文件。