Как получить токен доступа Google Analytics, используя JavaScript? - PullRequest
0 голосов
/ 28 марта 2020

У меня есть код, который сначала загружает библиотеку Google Analytics с помощью JS, затем пользователь должен войти в систему, после чего у нас будет полный доступ к его учетной записи.

Как я могу сгенерировать токен доступа, используя JS чтобы получить данные (https://www.googleapis.com/auth/analytics) от текущего пользователя?

Моя цель - внести изменения в учетную запись пользователя, даже если он не вошел в систему.

<script>
function authenticate(num) {
  gapi.load('auth2', function() {
    gapi.auth2.init({
      client_id: "<?=$con_google_clientId?>",
    }).then(function(){
      auth2 = gapi.auth2.getAuthInstance();
      if (auth2.isSignedIn.get() == false) {
        return gapi.auth2.getAuthInstance().signIn({
          scope: 'https://www.googleapis.com/auth/analytics'
        })
        .then(function() {
          loadClient(num);
          console.log("Sign-in successful");
        },
        function(err) {
          console.error("Error signing in", err);
        });
      } else {
        loadClient(num);
        console.log("Logged in");
      }
    });
  });
}

function loadClient(num) {
  gapi.client.setApiKey("<?=$con_google_api_key?>");
  return gapi.client.load('analytics', 'v3')
  .then(function() {
    console.log("API loaded correctly");
    basicConnect(num);
  },
  function(err) {
    console.error("Error loading API", err);
  });
}

function basicConnect(num) {
  return gapi.client.analytics.management.accounts.list({})
  .then(function(response) {
    var accountId = '';
    for (var i = 0; i < Object.keys(response.result.items).length; i++) {
      accountId = accountId + response.result.items[i].id + ',';
    }
    console.log("Loaded");
  },
  function(err) {
    console.error("Execute error", err);
  });
}
</script>
...