Код здесь.
module.exports = function (callback, ID, PATHWAY, CAMPAIGN) {
var google = require('googleapis');
var analytics = google.analytics('v3');
var key = require('JSON PATHWAY');
var VIEW_ID = 'VIEW ID';
var jwtClient = new google.auth.JWT(
'SERVICE ACCOUNT', null, key.private_key,
['https://www.googleapis.com/auth/analytics.readonly'], null
);
jwtClient.authorize(function (err, tokens) {
console.log('Calling tokens');
if (err) {
console.log(err);
} else {
analytics.data.ga.get({
'auth': jwtClient,
'ids': VIEW_ID,
'metrics': 'ga:pageViews',
'dimensions': 'ga:browser',
'start-date': '30daysAgo',
'end-date': 'yesterday',
'sort': '-ga:visits',
'max-results': 100,
'filters': 'ga:campaign==NAME',
}, function (err, response) {
if (err) {
console.log(err);
} else {
var result = JSON.stringify(response, null, 4);
}
});
}
});
callback(/* error */ null, result);
}
Итак, мой код Node.JS выше.
Вот мой код контроллера.
public async Task<IActionResult> TestNode([FromServices] INodeServices nodeServices)
{
var result = await nodeServices.InvokeAsync<Object>("./wwwroot/js/GoogleAnalytics", 1, 2, 3);
return Ok(result);
}
Все довольно просто и понятно, если не считать формы, когда я ее запускаю. Я понял это.
Итак, я проверил следующее:
- Присутствует гуглапи
- Папка google.analytics и код v3 присутствуют там, где и должны быть
- Версия узла обновлена
- Узел работает
- Код Node.JS работает нормально (вне ядра).