画像添付用のアプリを用意し、kintoneのポータルから添付された最新の画像へのリンクをボタンクリックで表示するアプリを作成しています。
画像を添付するユーザーは一部になり、画像を表示するユーザーは多数いますので、アプリ自体の編集権やアクセス権は添付するユーザーのみに持たせたいと考えております。
画像を表示するユーザーはアプリの存在を意識させたくないので、アプリ自体へのアクセス権を持たせていません。
そのような状況の中で、画像を取得したいのですが、filekeyの取得まではうまく行きましたが、filekeyを元に画像を取得する機能が上手く実装できません。
下記コードをどのように修正したら良いか、ご教授頂けると幸いです。
button.addEventListener('click', function(){
let getURL = 'https://<サブドメイン>.cybozu.com/k/v1/records.json?app=<アプリID>';
let headers = {
'X-Cybozu-API-Token':'<APIトークン>',
//'Content-Type': 'application/json'
};
kintone.proxy(getURL, 'GET', headers, {}, function(body, status, headers) {
console.log(status, JSON.parse(body), headers);
let resp = JSON.parse(body);
let records = resp.records;
let filekey = records[0].休暇予定表.value[0].fileKey;
let url = 'https://<サブドメイン>.cybozu.com/k/v1/file.json?fileKey=' + filekey;
let xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
// success
let blob = new Blob([xhr.response], { type: 'image/jpeg' });
let url = window.URL || window.webkitURL;
let blobUrl = url.createObjectURL(blob);
location.href = blobUrl;
} else {
// error
console.log(xhr.responseText);
}
};
xhr.send();
}, function(error) {
console.log(error);
});
})