ドメイン間、レコード添付ファイルの取得

フィリピンの者です。来日し、3年目弱です。

何:

ポータルで、掲示板があり、添付のあるお知らせもあります。実装したのはpdf形式の添付ファイルを取得し、ブラウザー上で表示する。

環境:

  • 開発者ドメインをステージングとしています。

  • 本番ドメイン。

問題

ステージングからとして、データ(添付ファイルを含む)は本番環境から引っ張る際、blobが取得出来ますが、出力するとファイルは空です。 本番環境では通常表示出来ます。

本番で通常ならなぜやりたい

  • 将来的、ヘッドレスCMSのサイトを開発し、バックエンドはKintoneにします。

やってみたこと。

  • XMLHttpRequest

https://developer.cybozu.io/hc/ja/articles/202166180-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89

  • kintone.proxy()

 

export const getFileByFileKey = async (fileKey: string) => {

  const headers = {

    'X-Cybozu-API-Token': AUTH,

    'Content-Type': 'blob',

    'X-HTTP-Method-Override': 'GET',

  };

  const url = `https://${DOMAIN}/k/v1/file.json?fileKey=${fileKey}`;

  const resp = await kintone.proxy(`${url}`, 'GET', headers, {});

  const [fileBlob, status, responseHeaders] = resp;

  const file = new Blob([fileBlob], {type: 'application/pdf'});

  const fileURL = URL.createObjectURL(file);

  window.open(fileURL);

  console.log(fileURL, status, responseHeaders);

};

よろしくお願いいたします。

 

Lorenz Rasさん

お世話になっております。

kintone.proxy()は、レスポンスボディとして文字列しか受け取れないかと思います。
https://developer.cybozu.io/hc/ja/articles/202166320
> 制限事項
> proxy 先が返すレスポンスボディは、文字列のみ対応しています。画像などのバイナリデータは取得できません。

XMLHttpRequestを使用した場合は、他ドメインからkintone REST APIを実行できないと思います。
https://developer.cybozu.io/hc/ja/articles/201919400#step6

外部サイトから実行できるAPIを自前で用意し、そのAPIでkintone REST APIを実行させる必要があるかと思います。
https://qiita.com/ha_ru_ma_ki/items/ccb7c535d8ef1b255365