2

nodejsモジュールにhttps://developers.podio.com/doc/items/add-new-item-22362PodioAPIaddItem呼び出しを実装しようとしています。コードは次のとおりです。

var _makeRequest = function(type, url, params, cb) {
  var headers = {};
  if(_isAuthenticated) {
    headers.Authorization = 'OAuth2 ' + _access_token ;
  }
  console.log(url,params);
  _request({method: type, url: url, json: true, form: params, headers: headers},function (error, response, body) {
    if(!error && response.statusCode == 200) {
      cb.call(this,body);
    } else {
      console.log('Error occured while launching a request to Podio: ' + error + '; body: ' + JSON.stringify (body));
    }
  });
}

exports.addItem = function(app_id, field_values, cb) {
  _makeRequest('POST', _baseUrl + "/item/app/" + app_id + '/',{fields: {'title': 'fgdsfgdsf'}},function(response) {
    cb.call(this,response);
  });

次のエラーが返されます。

{"error_propagate":false,"error_parameters":{},"error_detail":null,"error_description":"No matching operation could be found. No body was given.","error":"not_found"}

アプリでは「title」属性のみが必要です。PodioGUIで確認しました。また、投稿先のURLから末尾のスラッシュを削除しようとすると、同様のエラーが発生しますが、エラーの説明にURLが見つかりませんというメッセージが表示されます。

生のリクエストをキャッチするためにプロキシを設定しますが、誰かがコードのエラーを見ただけかもしれません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

これを気にしないでください、私は解決策を見つけました。問題は、addItem 呼び出しが、本体に JSON パラメーターを使用した最初の「実際の」API メソッドの実装だったことです。以前の呼び出しは、authentication と getApp でした。これは GET であり、パラメーターはありません。

問題は、Podio が認証用に POST キーと値のペアをサポートしているが、すべての呼び出しでこれをサポートしていないことです。私は認証とリアル API の両方のすべての呼び出しに単一の _makeRequest() メソッドを利用しようとしていました。

認証用に 1 つ、すべての API 呼び出し用に 1 つ実装する必要があるようです。

とにかく、誰かがノードでの addItem 呼び出しの実用的な概念実証が必要な場合は、ここにあります (事前に認証トークンを取得していると仮定します)。

_request({method: 'POST', url: "https://api.podio.com/item/app/" + app_id + '/', headers: headers, body: JSON.stringify({fields: {'title': 'gdfgdsfgds'}})},function(error, response, body) {
  console.log(body);
});
于 2013-03-01T12:21:25.727 に答える