根据 Docs,我已经在 request call
上验证了我的应用程序并尝试插入一个帖子:
var blogger = google.blogger('v3');
app.post('/creatGoogleBloggerPost', function(req, res, next){
console.log('creatGoogleBloggerPost called');
var oauth2Client = new google.auth.OAuth2();
var key = require('./public_html/SoulSeeker2-1bxxxaaa727d.json');
var jwtClient;
jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/blogger'], null);
jwtClient.authorize(function(err, tokens) {
console.log('retrieved tokens.access_token from google', tokens.access_token);
google.options({
auth: jwtClient
});
if (err) {
console.log(err);
return;
} else {
blogger.posts.insert({
auth: jwtClient,
blogId: '4113791741191234135',
resource: {
title: 'Sample rootscope',
content: 'Content rootscope'
}
}, function(){
console.log('success');
});
}
});
});
我正在取回 token ,它还会打印回调 success message
但是,当我检查博客时没有插入任何帖子。也没有错误。这里可能出了什么问题?
更新:
实际上 google-blogger-api
不接受服务帐户 token 。所以修改我的代码以使用 oauth2.0
和 node-passport
但仍然出现 login error
:
blogger.posts.insert({
Authorization: 'Bearer ' +USERS.accessToken,
blogId: '4113796741591234135',
resource: {
title: 'Sample rootscope',
content: 'Content rootscope'
}
}, function(err, reponse){
if(err){
console.log('error ', err);
} else {
console.log('blog post success in google blogger' , reponse);
}
});
我已经通过了 auth token
但我现在得到这样的错误:
error { [Error: Login Required]
code: 401,
errors:
[ { domain: 'global',
reason: 'required',
message: 'Login Required',
locationType: 'header',
location: 'Authorization' } ] }
我用的是官方谷歌blogger api .我想我没有在 header 中传递 token 。如何正确传递 token 以解决此问题?
最佳答案
实际的问题是我不能传递原始的access token
,我需要像这样包装它:
authObj = new google.auth.OAuth2();
authObj.setCredentials({
access_token: USERS.accessToken
});
blogger-api
显然没有记录上面的“包装部分”
然后在下面的调用中传递它,如 auth:authObj
所示:
blogger.posts.insert({
auth: authObj,
blogId: '4113796741591234135',
resource: {
title: 'Sample rootscope',
content: 'Content rootscope'
}
}, function(err, reponse){
if(err){
console.log('error ', err);
} else {
console.log('blog post success in google blogger' , reponse);
}
});
关于javascript - 如何使用 blogger api nodejs 插入帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509803/