Как использовать токен для вызова Google API с помощью узла и экспресса - PullRequest
0 голосов
/ 21 сентября 2019

Я создаю небольшое приложение Node / React, в котором я пытаюсь внедрить OAuth2 Google, чтобы запросить API Google Analytics.Я использую Passport.js для обработки аутентификации.

Тогда, насколько я понимаю, читая эту документацию мне нужно use token to call Google API.Как мне это сделать?

У меня есть токен, передаваемый в переменную:

router.get(
    "/auth/google/callback",
    passport.authenticate("google", { failureRedirect: "/error", session: false }),
    function(req, res) {
        var token = req.user.token;
        res.redirect("http://localhost:5000/?token=" + token);


    }
);

Например, я хотел бы получить список всех представлений (профилей) для авторизованного пользователя.Как мне передать токен в этом примере?

function listViews() {
  var request = gapi.client.analytics.management.profiles.list({
        accountId: '~all',
        webPropertyId: '~all'
  });
  request.execute(printViews);
}

Я пытался с этим:

router.get('/getData', function(req, res) {
    googleAccounts.management.profiles.list(
      {
        accountId: '~all',
        webPropertyId: '~all'
      },
      (err, data) => {
        if (err) {
          console.error('Error: ' + err)
          res.send('An error occurred')
        } else if (data) {

          Console.log(data)

        }
      }
    )
})

, но у меня есть ошибка Error: Login Required.

1 Ответ

2 голосов
/ 24 сентября 2019

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

function listViews() {
  gapi.client.setToken{
    access_token: <token-here>
  })
  var request = gapi.client.analytics.management.profiles.list({
        accountId: '~all',
        webPropertyId: '~all'
  });
  request.execute(printViews);
}

См. Справочник по клиенту JavaScript API Google

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...