kintone.proxy()でのレコードの取得ができない

こんにちは、見ていただきありがとうございます。

アプリのアクセス権限を与えていない人に対して、レコードの一部を閲覧、追加権限を与えたいためにAPI-TOKENを利用してkintone.proxy()で色々テストしてみたのですが、“CB_IL02” "不正なリクエストです。"とでてレコードを取得できません。

kintone.proxy()と同じ条件のクエリ、ヘッダー情報でXMLHttpRequest、cURLでは情報取得できるのですが、なぜかkintone.proxy()では、上記のエラーがでて、取得できませんでした。

よろしければお教え願えませんでしょうか?
宜しくお願いいたします。

 

実際のコード:

(function () {
  'use strict'

      const params = {
          'app': 1,
          'id': 1,
        };

      const header = {
            "Content-Type":"application/json",
      "X-Cybozu-API-TOKEN":"MY-TOKEN",
      "HOST":"xxx.cybozu.com",
        };

      kintone.proxy('https://xxx.cybozu.com/k/v1/record.json', 'GET', header, params, function (body, status, headers) {
console.log(status, JSON.parse(body), headers);
}, function (error) {
console.log(error);
});
})();

どうやら、kintone.proxyのGETでは、bodyの受け渡しができないようで、URLクエリでの絞り込みが必要のようです。

それに伴って、headerの

"Content-Type":"application/json",

は不要のようです。

このように変更しましたらうまくいきました。

(function () {
    'use strict'

      const params = {};  //なぜかこのように変数を宣言してあげないと全件取得する。

      const header = {
          "X-Cybozu-API-TOKEN":"MY-TOKEN",
            "HOST":"xxx.cybozu.com",
        };

      return kintone.proxy('https://xxx.cybozu.com/k/v1/record.json?app=1&id=1', 'GET', header,params, function (body, status, headers) {
          console.log(status, JSON.parse(body), headers);
      }, function (error) {
          console.log(error);
      });
})();

一点補足させてください。

https://developer.cybozu.io/hc/ja/articles/202166320

POST/PUT の場合のみ利用され、GET/DELETE の場合は無視されます。
GET/DELETE の場合、URL の QueryString にパラメータを乗せる必要があります。

こちらに記載の通り、methodがGET/DELETEの場合は、bodyではなくQueryStringにパラメータを乗せる必要がありますが、

POST/PUTの場合はbodyの受け渡しは可能です。

kh 様

補足していただきありがとうございます。
上記の記述を変えさせていただきました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。