🙆
kintoneで、フィールドの編集権限がなくても入力できちゃうようにする方法
kintone REST APIの共通仕様のページにはこう書いてあります。
APIトークンを使用した操作は、Administratorによる操作として記録されます。
ふむふむ。
つまり、編集権限のないフィールドになにか入力したりしてPOSTしたいなら、APIトークン認証使ったらいいわけね👀
kintone UI Componentと、kintone REST API Clientを使ったよ。
kintone.events.on(["app.record.index.show"], (event) => {
const header = kintone.app.getHeaderMenuSpaceElement();
const button1 = new Kuc.Button({
text: "レコード追加1",
type: "submit",
});
const button2 = new Kuc.Button({
text: "レコード追加2",
type: "submit",
});
header.appendChild(button1);
header.appendChild(button2);
// kintone REST API Client使う場合
button1.addEventListener("click", async (event) => {
const rec = {
名前: { value: "なまえ" },
職業: { value: "しょくぎょう" },
};
const client = new KintoneRestAPIClient({
auth: { apiToken: "APIトークン(ベタ書きはよくない)" },
});
const res = await client.record.addRecord({ app: 490, record: rec });
});
// XMLHttpRequest を使ったリクエスト
button2.addEventListener("click", (event) => {
const body = {
app: kintone.app.getId(),
record: {
名前: {
value: "なまえ2",
},
職業: {
value: "しょくぎょう2",
},
},
// CSRF TOKEN: kintone上からAPI(POST, PUT, DELETE)を実行する場合に設定する必要あり
__REQUEST_TOKEN__: kintone.getRequestToken(),
};
const url = "https://{subdomain}.cybozu.com/k/v1/record.json";
const xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("X-Cybozu-API-Token", "APIトークン(ベタ書きはよくない)");
xhr.onload = function () {
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify(body));
});
});
Discussion