Mirror API 和 Node.JS

5
我有一个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( '++ 开始 ++' );
      console.log( '+err   ', err );
      console.log( '+result', result );
      //console.log( '+res   ', res );
      console.log( '++ 结束 ++' );
  });

在回调期间记录了什么内容:

++ 开始 ++
+err    { code: 400,
  message: '必需的',
  data: [ { domain: 'global', reason: 'required', message: '必需的' } ] }
+result undefined
++ 结束 ++

任何指示“必需的”是什么,如何提供它或如何进一步调试此类错误的迹象?

1个回答

5

更新:不再需要resource属性,因此原始代码应该可以正常工作,而无需使用所提出的解决方案。

由于node.js客户端库基于JavaScript客户端库构建,因此您需要在“资源”属性中设置请求正文:

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

运行完美。谢谢!是否有“resource”属性必需的参考资料,或者其他可用的属性是什么? - Prisoner
1
这适用于0.2.12-alpha及其之前的版本。截至最新的googleapis node.js模块(v 0.2.13-alpha),"resource"属性不再是必需的。您的原始代码将可以工作。 - Darshan Shankar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接