新規投稿
フォローする

UserAPIの取得

現在kintoneにて

ユーザー一覧の情報を取得したく、

https://cybozudev.zendesk.com/hc/ja/articles/202363040-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88API#step2
こちらの上記URLの情報をもとに以下のようにしてHTTPリクエストを投げているのですが
エラーになってしまいます。

ログイン名 user
パスワード pass
のときに

//base64エンコード
var authInfo =btoa("user:pass");

var objXhttp = new XMLHttpRequest();
objXhttp.open('GET','/v1/users.json', false);
objXhttp.setRequestHeader("X-Cybozu-Authorization" , authInfo);
objXhttp.setRequestHeader("Content-Type" , "application/json");
objXhttp.send();
console.log(objXhttp);

エラーコードは400で
{message":"不正なJSON文字列です。","id":"1505999166-1920744918","code":"CB_IJ01"}"
というエラーメッセージがかえって来てしまいます。

もちろんbasic認証などは使っておりません。

上記リクエストの何がまずいかわかる方教えていただけますでしょうか。

0

3件のコメント

Avatar
Ryu Yamashita

松本賀生さん

こんばんは。恐らく、

objXhttp.setRequestHeader("Content-Type" , "application/json");

を外して頂くと良いかと思います。GETメソッドでボディにJSONで情報をのせる時には必要ですが、そうでない時には不要です。
(あえてMIMEタイプを指定したが故に、受付側がボディにJSONがあるはずなのにないなぁという意味で返しているエラーだと思われます)

0
Avatar
松本賀生

Ryu Yamashita さま

大変迅速かつ適切なご回答
ありがとうございます!

objXhttp.setRequestHeader("Content-Type" , "application/json");
を外しましたら無事取得できました!

本当に助かりました!
ありがとうございます。

GETメソッドでボディにJSONで情報をのせる時には必要ですが、そうでない時>には不要です。
(あえてMIMEタイプを指定したが故に、受付側がボディにJSONがあるはずな>のにないなぁという意味で返しているエラーだと思われます)

大変不勉強でした・・(汗)
もう少しHTTPリクエストについても勉強しておきたいと思います。

0
Avatar
Ryu Yamashita

解決されたようで、良かったです(^^)

私もcybozu.comやkintoneを通してこの辺勉強させて頂きました。またご不明な点がありましたら、気軽にお尋ね頂ければと思います。

0
サインインしてコメントを残してください。