APIでグループ設定変更すると、SLASH_BL01のエラーが出た

「/v1/csv/userGroups.json」というAPIを用いてグループのユーザー設定を変更したいですが、「SLASH_BL01: ファイルがアップロードされていません。」が出ました。

CSVファイルはすでにアップロードされた、ファイルキーも取得できたのに、なぜそのエラー???

 

ソースコードは下記の通り:

var blob = new Blob([“abc,BMN”], {type: “text/csv”});
// FormDataにファイルを格納
var formData = new FormData();
formData.append(“__REQUEST_TOKEN__”, kintone.getRequestToken());
formData.append(“file”, blob, “file.csv”);

 

var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“POST”, encodeURI(‘/k/v1/file.json’), false);
xmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xmlHttp.responseType = ‘multipart/form-data’;
xmlHttp.send(formData);
if (xmlHttp.status!==200){// 200 = OK
 return;
}

 

var mFileKey = JSON.parse(xmlHttp.responseText).fileKey;

 

xmlHttp = new XMLHttpRequest();
xmlHttp.open(“POST”, kintone.api.url(‘/v1/csv/userGroups.json’),false);
xmlHttp.setRequestHeader(‘X-Cybozu-Authorization’, ‘************’);
xmlHttp.setRequestHeader(‘Content-Type’, ‘application/json’);
xmlHttp.send(‘{“fileKey”:"’ + mFileKey + ‘"}’);
if (xmlHttp.status!==200){// 200 = OK
 return
}

 

var resultId = JSON.parse(xmlHttp.responseText).id;
//リクエストを再設定
xmlHttp = new XMLHttpRequest();
xmlHttp.open(“GET”, “/v1/csv/result.json?id=” + resultId,false);
xmlHttp.setRequestHeader(‘X-Cybozu-Authorization’, ‘************’);
xmlHttp.send();

 

if (xmlHttp.status==200){// 200 = OK
 rsp = JSON.parse(xmlHttp.responseText);
 alert(“処理完了:” + rsp.done + “” + “処理成功:” + rsp.success + “” + “エラーコード:” + rsp.errorCode);
}else{
 alert(xmlHttp.responseText)
 return
}

cxingさん

パッと見なのですが、ファイルをアップロードしているURIに “/k” が入っていることで

おそらくエラーが発生しているのでは?と考えれます。

今回のファイルアップロードは下記を利用する必要があるものと思います。

https://developer.cybozu.io/hc/ja/articles/202350470

サクラエビさん

ありがとうございます。

確かにそうです、"/K"を抜けたらエラーが解消できました。

ファイルアップロードって、レコードに添付用(‘/k/v1/file.json’)とUser APIのCSVアップロード用(‘/v1/file.json’)の二つの種類があることですね。

勉強になりました、ありがとうございます!!!

 

cxingさん

おそらくkintone 上にあげるものと、cybozu.com 上にあげるものがあるから

だと思いますが、2種類あるようです。

ひとまず、エラーが解消されたようでよかったです!