Каков наилучший способ подключения к Google Analytics API через Node.js и Express? - PullRequest
0 голосов
/ 29 апреля 2019

Мне интересно, как лучше всего подключиться к моему API Google Analytics с помощью Node.js.Я попробовал метод ниже, но я получаю тривиальные ошибки и изо всех сил пытаюсь найти документацию, чтобы помочь мне.Просто интересно, если этот метод является лучшим способом.Спасибо за чтение!

Я пытаюсь визуализировать данные Google Analytics в веб-приложении.Итак, первым шагом, который я рассчитывал, будет запрос определенных данных из Google Analytics API.Я работаю в Node.js и Express.Я получаю сообщение об ошибке "файл не найден" после вызова googleAuth.getClient.Вот мой текущий код:

const Router = require('express').Router;
const {google} = require('googleapis');
const {auth: googleAuth} = require('google-auth-library');
const responses = require('../lib/responses');
const auth = require('../lib/auth');

const router = Router({ mergeParams: true });

// Use the auth middleware to require a token
// for each non whitelisted request
router.use(auth.authMiddleware);

const viewId = '*********';

router.get('/data', async (req, res) => {

  try {
    const client = await googleAuth.getClient({
    scopes: [
      'https://www.googleapis.com/auth/analytics.readonly'
    ]
    });
  }catch(err){
    console.log(err);
  }

    console.log("client ", client)

 const url = `https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A${viewId}&start-date=30daysAgo&end-date=2018-08-28&metrics=ga%3Apageviews&dimensions=ga%3ApagePath&sort=-ga%3Apageviews`;

  try {
   const outcome = await client.request({ url });
  }catch(err){
     console.log(err);
  }

  return responses
                .success ( res, outcome.data )
                .error ( );
});



module.exports = router;

1 Ответ

0 голосов
/ 04 мая 2019

https://flaviocopes.com/google-analytics-api-nodejs/

const { google } = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly'
 const jwt = new google.auth.JWT(process.env.CLIENT_EMAIL, null, 
 process.env.PRIVATE_KEY, scopes)

 const view_id = 'XXXXX'

  async function getData() {
  const response = await jwt.authorize()
  const result = await google.analytics('v3').data.ga.get({
      'auth': jwt,
      'ids': 'ga:' + view_id,
      'start-date': '30daysAgo',
      'end-date': 'today',
      'metrics': 'ga:pageviews'
  })

   console.dir(result)
  }

  getData()
...