LINE Messaging API を使って取得した画像コンテンツをkintoneに登録したい

背景・実現したいこと

LINE Messaging API を使って取得した画像コンテンツをkintoneに登録したいと考えています。画像コンテンツをバイナリデータで取得するところまでは成功しているようなのですが、kintoneに登録しても、画像が壊れていて表示できない状態です。

対応方法をお教え頂きたく、よろしくお願い致します。

取得したバイナリデータのイメージ

 

利用したソースコード

(function() {
     "use strict";
      const url ='https://api-data.line.me/v2/bot/message/14328537637025/content/';
      const token = "・・・・・";
const headers = {
'Authorization': ' Bearer ' + '{' + token + '}',
'Content-Type' : 'application/json; charser=UTF-8'
};
let eventsDetailShow = ['app.record.detail.show'];
kintone.events.on(eventsDetailShow, function(event) {
kintone.proxy(url, 'GET', headers, {}).then(function(res) {
console.log(res);
const blob = new Blob([res[0]],{type:"image/jpeg"});
const str = 'TEST.JPG';
// FormDataの作成
const formData = new FormData;
formData.append(' __REQUEST_TOKEN__', kintone.getRequestToken());
formData.append('file', blob, str);
var url = 'https://xxxxx.cybozu.com/k/v1/file.json';
var xmlHttp = new XMLHttpRequest();
xmlHttp.open('POST', url);
xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlHttp.send(formData);
xmlHttp.onload = function() {
if (xmlHttp.status === 200) {
var key = JSON.parse(xmlHttp.responseText).fileKey;
console.log(key);
var json = {
app: kintone.app.getId(),
id: kintone.app.record.getId(),
record: {
file: {
value: [{fileKey: key}]
}
}
};
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', json);
}
};
}, function(error) {
alert("LINEのメッセージ受信にエラーがありました!" + error);
return false;
});
});
})();

自己レスです。

Lineからの画像取得は、line/bot-sdk を使って取得に成功しました。

ただ、取得した画像はサイズが大きいと分割されて取得されてくるので、結合する必要がありました。

また、kintoneへの画像登録は axios を使いました。