У меня есть 2 вызова API YouTube v3 в моем коде NodeJS: каналы и PlaylistItems . Они оба возвращают JSON, и ответ на первый вызов анализируется очень хорошо, но анализ ответа на второй вызов вызывает синтаксическую ошибку. Я не уверен, является ли это ошибкой на моей стороне или в конечной точке API PlaylistItems.
Вот мой код (удален несущественные части):
// At start of the bot, fetches the latest video which is compared to if an announcement needs to be sent
function setLatestVideo () {
fetchData().then((videoInfo) => {
if (videoInfo.error) return;
latestVideo = videoInfo.items[0].snippet.resourceId.videoId;
});
}
// Fetches data required to check if there is a new video release
async function fetchData () {
let path = `channels?part=contentDetails&id=${config.youtube.channel}&key=${config.youtube.APIkey}`;
const channelContent = await callAPI(path);
path = `playlistItems?part=snippet&maxResults=1&playlistId=${channelContent.items[0].contentDetails.relatedPlaylists.uploads}&key=${config.youtube.APIkey}`;
const videoInfo = await callAPI(path);
return videoInfo;
}
// Template HTTPS get function that interacts with the YouTube API, wrapped in a Promise
function callAPI (path) {
return new Promise((resolve) => {
const options = {
host: 'www.googleapis.com',
path: `/youtube/v3/${path}`
};
https.get(options, (res) => {
if (res.statusCode !== 200) return;
const rawData = [];
res.on('data', (chunk) => rawData.push(chunk));
res.on('end', () => {
try {
resolve(JSON.parse(rawData));
} catch (error) { console.error(`An error occurred parsing the YouTube API response to JSON, ${error}`); }
});
}).on('error', (error) => console.error(`Error occurred while polling YouTube API, ${error}`));
});
}
Примеры ошибок, которые я получаю : Неожиданный токен, в JSON и Неожиданное число в JSON
До ~ 2 недель go этот код работал нормально без броска любые ошибки, я понятия не имею, что изменилось, и не могу понять это. Что может быть причиной этого?