Получайте данные Google Analytics каждый час (по crone)

#google-api #google-oauth #google-analytics-api

#google-api #google-oauth #google-analytics-api

Вопрос:

Я использовал следующий код API для получения данных из Google Analytics. но теперь мне нужно разделить их, потому что мне нужно получить авторизацию пользователя, а затем создавать задание crone каждый час (без необходимости запрашивать другое разрешение) с другого сервера для получения данных GA.

Какие изменения следует внести?

 <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <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>



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



<script>
  // Replace with your view ID.
  var VIEW_ID = 'ga:104831427';

  // 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"
          }
        ],
        "dimensions": [
            { "name": "ga:date" }
        ]
          }
        ]
      }
    }).then(displayResults, console.error.bind(console));
  }

 function displayResults(response) {
   
var formattedJson = JSON.stringify(response.result, null, 2);

window.parent.postMessage({formattedJson:(formattedJson)}, "my-domain.com"); 
  }


</script>

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

</body>
</html>
  

Ответ №1:

Вы можете использовать Google superProxy для получения результатов для вас https://developers.google.com/analytics/solutions/google-analytics-super-proxy

Кроме того, вы можете использовать расширение токена, используя следующее:

 https://accounts.google.com/o/oauth2/token?client_id=CLIENT_ID
amp;client_secret=CLIENT_SECRET
amp;refresh_token=REFRESH_TOKEN
amp;grant_type=refresh_token
  

Более подробная информация о том, как это сделать, доступна здесь: http://thisistony.com/blog/googleanalytics/google-analytics-api-oauth-ever-wondered-how-to-get-the-access_token/