我下载并安装了带有npm install googleapis
的谷歌API,现在我正在尝试使用以下代码访问我的节点JS文件中的API:
var google = require('googleapis')
var youtube = google.youtube({version: 'v3', auth: API_KEY})
但是,当我尝试访问视频对象时,我总是null
返回。显然,youtube 对象已损坏,因为当我字符串化它时,我得到了这个:
{"_options":{"auth":"*********"},"activities":{},"captions":{},"channelBanners":{},"channelSections":{},"channels":{},"commentThreads":{},"comments":{},"guideCategories":{},"i18nLanguages":{},"i18nRegions":{},"liveBroadcasts":{},"liveStreams":{},"playlistItems":{},"playlists":{},"search":{},"subscriptions":{},"thumbnails":{},"videoAbuseReportReasons":{},"videoCategories":{},"videos":{},"watermarks":{},"google":{"_options":{},"auth":{"_cachedCredential":null}}}
所以所有的小"子对象"都是空的。我该如何解决这个问题?
您是否检查了依赖项是否列在您的 package.json 文件中?如果没有尝试 npm install --save googleapis 它会直接将其添加到您的依赖项列表中
youtube
变量在字符串化时显示空对象这一事实并不担心,因为该对象的 JSON 表示形式仅包含基元类型的属性。 youtube.videos
对象仅包含方法,这些方法由 JSON.stringify
省略。
试试这个:
var google = require('googleapis');
var youtube = google.youtube({version: 'v3', auth: API_KEY});
var queryOptions = {
'part': 'id,snippet',
'maxResults': 5,
'id': 'dQw4w9WgXcQ,HL1UzIK-flA'
};
youtube.videos.list(queryOptions, function(err, data) {
if(err) {
console.error(err);
return;
}
console.log(data);
});
对于youtube api,我使用youtube-node,它工作正常:https://github.com/nodenica/youtube-node