API Google Analytics в реальном времени не работает на стороне клиента с JS - PullRequest
0 голосов
/ 30 ноября 2018

enter image description here

Я пытался использовать ключ Api и OAuth 2.0 В результате у меня есть эти ошибки http://prntscr.com/lov2pz Пожалуйста, помогите.Какой ключ API я должен использовать?какие ошибки я допустил?

    function start() {
        // 2. Initialize the JavaScript client library.
        gapi.client.init({
            'apiKey': 'XXXXXX',
            // clientId and scope are optional if auth is not required.

        }).then(function() {

            return gapi.client.request({
                'path': 'https://www.googleapis.com/analytics/v3/data/realtime?ids=ga%3A185730557&metrics=rt%3AactiveUsers&fields=totalsForAllResults',
            })
        }).then(function(response) {
            console.log(response.result);
        }, function(reason) {
            console.dir(reason);

            console.log('Error: ' + reason.result.error.message);
        });
    };
    gapi.load('client', start);

</script>

1 Ответ

0 голосов
/ 30 ноября 2018

Прежде всего вам необходимо понять разницу между частными и общедоступными данными.Публичные данные - это данные, которыми никто не владеет.Любой может искать видео YouTube в API YouTube, например

Данные Google Analytics, с другой стороны, являются конфиденциальными и принадлежат пользователю.Ключи API используются для доступа к публичным данным, а не к частным данным.Чтобы получить доступ к частным данным Google Analytics, вам необходимо войти в систему как пользователь, имеющий доступ к этим данным.

В учебном пособии quickstart js будет показано, как получить доступ к данным Google Anlaytics.используя JS, вам придется изменить его для API реального времени. Я не являюсь разработчиком js, поэтому не могу помочь с этим, но вы должны быть в состоянии понять процесс входа в систему, используя этот пример

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Hello Analytics Reporting API V4</title>
  <meta name="google-signin-client_id" content="<REPLACE_WITH_CLIENT_ID>">
  <meta name="google-signin-scope" content="https://www.googleapis.com/auth/analytics.readonly">
</head>
<body>

<h1>Hello Analytics Reporting API V4</h1>

<!-- The Sign-in button. This will run `queryReports()` on success. -->
<p class="g-signin2" data-onsuccess="queryReports"></p>

<!-- The API response will be printed here. -->
<textarea cols="80" rows="20" id="query-output"></textarea>

<script>
  // Replace with your view ID.
  var VIEW_ID = '<REPLACE_WITH_VIEW_ID>';

  // Query the API and print the results to the page.
  function queryReports() {
    gapi.client.request({
      path: '/v4/reports:batchGet',
      root: 'https://analyticsreporting.googleapis.com/',
      method: 'POST',
      body: {
        reportRequests: [
          {
            viewId: VIEW_ID,
            dateRanges: [
              {
                startDate: '7daysAgo',
                endDate: 'today'
              }
            ],
            metrics: [
              {
                expression: 'ga:sessions'
              }
            ]
          }
        ]
      }
    }).then(displayResults, console.error.bind(console));
  }

  function displayResults(response) {
    var formattedJson = JSON.stringify(response.result, null, 2);
    document.getElementById('query-output').value = formattedJson;
  }
</script>

<!-- Load the JavaScript API client and Sign-in library. -->
<script src="https://apis.google.com/js/client:platform.js"></script>

</body>
</html>
...