こんにちは、見ていただきありがとうございます。
アプリのアクセス権限を与えていない人に対して、レコードの一部を閲覧、追加権限を与えたいために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 様
補足していただきありがとうございます。
上記の記述を変えさせていただきました。
system
(system)
クローズされました:
5
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。