Зеркало API и Node.JS

У меня есть программа node.js, с которой я пытаюсь работать с модулем googleapis (https://github.com/google/google-api-nodejs-client) альфа версии 0.2.5.

Я могу без проблем совершать вызовы, используя необработанный HTTP, поэтому я знаю, что я внесен в белый список для API, я правильно аутентифицирую и авторизуюсь, и требуются правильные области и все остальное. Если я использую тот же access_token для вставки на шкалу времени, я получаю сообщение об ошибке в обратном вызове. Я также обнаружил плюс 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   ++

Есть ли какие-либо указания на то, что такое «Требуется», как его предоставить или как дальше отлаживать такие ошибки?


person Prisoner    schedule 09.05.2013    source источник


Ответы (1)


ОБНОВЛЕНИЕ: свойство 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   ++' );
  });
person Alain    schedule 09.05.2013
comment
Прекрасно работает. Спасибо! Есть ли ссылка на то, что свойство ресурса является обязательным или какие другие свойства доступны? - person Prisoner; 09.05.2013
comment
Это было верно для версии 0.2.12-alpha и ранее. Начиная с последней версии модуля googleapis node.js (v 0.2.13-alpha), свойство ресурса не требуется. Ваш исходный код сработал бы. - person Darshan Shankar; 16.07.2013