Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 固定:SailsJs+;谷歌博客正在暂停_Google Api_Blogger_Sails.js - Fatal编程技术网

Google api 固定:SailsJs+;谷歌博客正在暂停

Google api 固定:SailsJs+;谷歌博客正在暂停,google-api,blogger,sails.js,Google Api,Blogger,Sails.js,所以我一直在修补SailsJs,到目前为止我真的很喜欢它,但我正试图从我自己的博客帖子中获取一个视图。这有点问题,因为在尝试获取索引视图时连接超时,并且控制台没有通过console.log条目提供反馈 博客服务 //BloggerService.js-在api/services中 var g=要求(“googleapis”); var apiKey='OUche33eekym0nKEY uME'; exports.getBlogPosts=函数(选项,cb){ g、 发现('blogger','

所以我一直在修补SailsJs,到目前为止我真的很喜欢它,但我正试图从我自己的博客帖子中获取一个视图。这有点问题,因为在尝试获取索引视图时连接超时,并且控制台没有通过console.log条目提供反馈

博客服务
//BloggerService.js-在api/services中
var g=要求(“googleapis”);
var apiKey='OUche33eekym0nKEY uME';
exports.getBlogPosts=函数(选项,cb){
g、 发现('blogger','v3')。执行(函数(err,客户端){
如果(错误){
cb=null;
返回console.log(err);
}否则{
var opts={'blogId':options.id,'maxResults':options.limit,'fields':'items(title,content,url)};
cb=client.blogger.posts.list(opts);
};
});
};
exports.getBlogPost=函数(选项,cb){
g、 发现('blogger','v3')。执行(函数(err,客户端){
如果(错误){
cb=null;
返回console.log(err);
}否则{
var opts={'blogId':options.id,'postId':options.postId};
cb=client.blogger.posts.get(opts);
};
});
};
调用控制器中的服务

BlogController.js
/**
*BlogController.js
*
*@description::
*@docs::http://sailsjs.org/#!文件/控制器
*/
module.exports={
索引:功能(req、res){
getBlogPosts({'id':'867530986755309','limit':6},函数(err,blogPosts){
如果(错误){
返回console.log(err);
}否则{
console.log(blogPosts.items[0].url);
res=博客帖子;
};
});
}
}
索引视图

任何帮助都将不胜感激。谢谢你花时间看这个

更新 非常感谢斯科特,他让我更接近最终结果。这就是我到目前为止所做的,但只需要解决discover/apiKeys的身份验证问题

exports.getBlogPosts=函数(选项,cb){ g、 发现('blogger','v3')。执行(函数(err,客户端){ 如果(错误){ cb(err); }否则{ var opts={'blogId':options.id,'maxResults':options.limit,'fetchbody':false,'fields':'items(title,url)} client.blogger.posts.list(opts).withApiKey(apiKey).execute(cb); }; }); }; exports.getBlogPost=函数(选项,cb){ g、 发现('blogger','v3')。执行(函数(err,客户端){ 如果(错误){ cb(err); }否则{ var opts={'blogId':options.id,'postId':options.postId}; client.blogger.posts.get(opts).withApiKey(apiKey).execute(cb); }; }); };
看起来您可能是Node.js的新手,因此您可能想了解一下Express使用的。我在代码中看到的两个问题是:

  • BloggerService.js
    中为回调赋值,而不是实际调用回调:
    cb=client.blogger.posts.list(opts)
    应该是(基于对谷歌API文档的快速扫描)
    client.blogger.posts.list(opts).execute(cb)
    ,如果出现错误,
    cb=null
    应该是
    cb(err)

  • 您正在为响应对象赋值,而不是发送响应:
    res=blogPosts
    应该是
    res.json(blogPosts)

  • 至于你在哪里/什么时候打电话给你的服务,医生们并不打算漫不经心。这些服务是全球化的,因此可以从任何控制器内的任何位置调用它们;作为开发人员,您可以决定您需要服务调用的位置

    这正好回答了我需要知道的问题。即使只是粗略地检查一下,你还是成功了。非常感谢你。我只是在设置ApiKey时遇到了一个问题,但这超出了我的问题范围。