镜像API和Node.JS

时间:2013-05-09 03:55:32

标签: google-api-client google-mirror-api google-api-nodejs-client

我有一个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   ++

是什么"必需",如何提供它,或者如何进一步调试这样的错误?

1 个答案:

答案 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   ++' );
  });