我有一个node.js程序,我正在尝试使用googleapis模块(https://github.com/google/google-api-nodejs-client)版本0.2.5-alpha。
我可以毫无问题地使用原始HTTP进行调用,因此我知道我已经列入了API的白名单,我正在进行身份验证和授权,并且正在请求正确的范围和所有内容。如果我使用相同的access_token在时间轴中插入,我在回调中收到错误。我也发现了plus API,使用这个API的调用工作正常。
用于发现API的代码片段,它似乎没有问题:
var client;
googleapis
.discover( 'plus', 'v1' )
.discover( 'mirror', 'v1' )
.execute( function(err,data){
console.log( err );
client = data;
});
执行调用的代码片段:
client.mirror.timeline.insert({ text: "test 1 " } ).withAuthClient(user.auth).execute(function(err,result,res){ console.log( '++ start ++' ); console.log( '+err ', err ); console.log( '+result', result ); //console.log( '+res ', res ); console.log( '++ end ++' ); });
回调期间记录了什么:
++ start ++ +err { code: 400, message: 'Required', data: [ { domain: 'global', reason: 'required', message: 'Required' } ] } +result undefined ++ end ++
是什么"必需",如何提供它,或者如何进一步调试这样的错误?
答案 0 :(得分:5)
更新:不再需要
resource
属性,因此原始代码应该正常工作而不是建议的解决方案。
由于node.js客户端库基于JavaScript客户端库,因此需要在“resource”属性中设置请求主体:
client.mirror.timeline.insert({resource: {
text: "test 1 "
}}).withAuthClient(user.auth).execute(function(err,result,res){
console.log( '++ start ++' );
console.log( '+err ', err );
console.log( '+result', result );
//console.log( '+res ', res );
console.log( '++ end ++' );
});