kintoneレコード詳細画面のAPIとuserAI連携について

ご担当者様
いつもお世話になっております、上澤と申します。

kintoneレコード詳細画面で、登録ボタンを押したタイミングで、userAPIのエクスポートとファイルアップロードを
順に呼び出してユーザー情報を更新しに行く処理を作成しております。
ところが、ファイルアップロード時に520エラー(CB_CS01)となります。
過去の情報を参照しましたが、解決しないため、知恵をお借りしたいです。

アップロードする","区切りのデータは、共通管理から読み込ませて問題ないため、
入力チェックに引っかかっていることはないと考えております。

以下にソースと、リクエストボディとエラー内容を記載いたします。

大変お手数ですが、どうぞよろしくお願い致します。

<使用ブラウザ>
IE11

<ソース抜粋>

kintone.events.on(‘app.record.edit.submit’, function(event) {

:(エクスポート部は省略)

// URL作成
appUrl = “https://” + subDomain + “/v1/file.json”;

// boundary生成
var strBoundary = createBoundary();

// リクエスト生成
xmlHttp = new XMLHttpRequest();

xmlHttp.open(“POST”, appUrl, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.setRequestHeader(‘X-Cybozu-Authorization’,‘*****’); // システム権限有
xmlHttp.setRequestHeader(‘Content-Type’,‘multipart/form-data; boundary=’ + strBoundary);

// リクエストボディー部を作成
var str = “”
str = str + ‘–’ + strBoundary + ‘\r’
str = str + ‘Content-Disposition: form-data; name=“file”; filename=“user.csv”\r’
str = str + ‘Content-Type:text/csv\r\r’
str = str + strImportUser + ‘\r\r’
str = str + ‘–’ + strBoundary + ‘–’

// リクエスト送信
xmlHttp.send(str);

// リクエスト受け取り
if (xmlHttp.status == 200){
if(window.JSON){
var obj = JSON.parse(xmlHttp.responseText);

}
}

<リクエストボディ>

“-----------------------------UbpbI3VKkpTFmdxDZgXz78aVFOmW79EAFeDW\r
Content-Disposition: form-data; name="file"; filename="user.csv"\r
Content-Type:text/csv\r
\r
aaa,ユーザ表示名,aaa,*,ja,1,ja,Asia/Tokyo,1,2,\r
\r
-----------------------------UbpbI3VKkpTFmdxDZgXz78aVFOmW79EAFeDW–”

<レスポンス>

“{"message":"不正なPOSTアクセスです。画面をリロードしてください。","id":"1505999166-303074970","code":"CB_CS01"}”

以上です。

上澤 嘉照さん

 

こちらのTipsが参考になりそうですが、チェックされていますでしょうか。

xmlHttpRequestを使う時点でformDataオブジェクトも使えて、multipart/form-data形式もboundary等を入れてボディを作りこまなくても良くなるかと思います。

早速ありがとうございます。

教えてくださったTIPSで解決しました。

ありがとうございました。

解決されたようで良かったです。