youtube analytics api에 요청하려고합니다. 요청을 구성하는 데 문제가있어 허용됩니다. 나는 구글 API를 Node.js를 클라이언트Youtube Analytics - 요청 작성하기
https://github.com/google/google-api-nodejs-client
을 이용하고 있고
import { Meteor } from 'meteor/meteor';
import google from 'googleapis';
import KEY_FILE from './keyFile.json';
import { CHANNEL_ID } from './channelId.js';
//api's
const analytics = google.youtubeAnalytics('v1');
//fetch youtube analytics
export function youtubeAnalytics(start, end){
//initalise request data
const startDate = `${start.getFullYear()}-${('0'+(start.getMonth()+1)).slice(-2)}-${('0'+(start.getDate())).slice(-2)}`;
const endDate = `${end.getFullYear()}-${('0'+(end.getMonth()+1)).slice(-2)}-${('0'+(end.getDate())).slice(-2)}`;
const scopes = [
'https://www.googleapis.com/auth/youtube',
'https://www.googleapis.com/auth/youtube.readonly',
'https://www.googleapis.com/auth/yt-analytics-monetary.readonly',
'https://www.googleapis.com/auth/yt-analytics-monetary.readonly'
];
//generate authorisation token
var AUTH = new google.auth.JWT(
KEY_FILE.client_email,
null,
KEY_FILE.private_key,
scopes,
null
);
//authorize request
AUTH.authorize(function (err, tokens) {
if (err) {
console.log(err);
return;
}
//create request
const analyticsRequest = {
auth: AUTH,
'start-date': startDate,
'end-date': endDate,
ids: `channel==${CHANNEL_ID}`,
metrics: 'views',
};
//make request
analytics.reports.query(analyticsRequest, function (err, data) {
if (err) {
console.error('Error: ' + err);
return false;
}
if (data) {
console.log(data);
return data;
}
});
});
return false;
}
Meteor.methods({youtubeAnalytics});
를 다음과 같이 내 코드는 내가
Error: Error: Invalid query. Query did not conform to the expectations.
내가 그 할 생각 다음과 같은 오류가 계속입니다 내 요청 개체와 함께
const analyticsRequest = {
auth: AUTH,
'start-date': startDate,
'end-date': endDate,
ids: `channel==${CHANNEL_ID}`,
metrics: 'views',
};
하지만 내가 발견 한 모든 예에서는이 요청 개체가 작동해야한다고 말합니다. 나는 그것을 최대한 단순화했다. 내 원래 요청 (내가 실제로 원하는 하나)은 다음과 같습니다.
const analyticsRequest = {
auth: AUTH,
'start-date': startDate,
'end-date': endDate,
ids: `channel==${CHANNEL_ID}`,
metrics: 'views',
dimensions: 'video',
sort: '-views',
'max-results': '200'
}
그 후 다른 API 끝점을 사용하는 동영상에 대한 모든 관련 정보를 얻기 위해 다른 요청을해야합니다. 요약 그래서
//api's
const youtube = google.youtube('v3');
/*
do processing of analytics data to create batchRequest
which is a string of comma separated video ids
*/
videoRequest = {
auth: AUTH,
part: 'id,snippet',
id: batchRequest;
}
youtubeApiData.search.list(videosRequest, function (err, data) {
if (err) {
console.error('Error: ' + err);
return false;
}
if (data) {
console.log(data);
return data;
}
});
나는 다양한 구글 API를의 요청을해야하고 (나는 유튜브 분석에서 첫 번째 요청 과거 없어)들이 수용되도록 요청을 형성하는 데 문제가 있어요 .
누군가 나를 올바른 방향으로 안내 할 수 있습니까?