お世話になっております。
表題の件についてですが、こちらの記事を参考にコマンドプロントでcurlコマンドを使用し実行してみたのですが、下記のエラーが出てしまい戸惑っております。
{“code”:“CB_VA01”,“id”:“zSE30iyJbwUXHf9GLv7U”,“message”:“入力内容が正しくありません。”,"errors
":{“app”:{“messages”:[“必須です。”]}}}curl: (23) Failed writing body (113 != 151)
アプリコードが未入力だというエラーだと思ったのですが、サンプルのアプリ番号を置き換えて入力しているので間違いないと思うのですが、何が原因なのでしょうか。
下記が実際に使用したコマンドになります。(サブドメイン等は伏せております)
curl https://サブドメイン.cybozu.com/k/v1/app/settings.json -X GET -H ‘content-Type:application/json’ -H “X-Cybozu-Authorization: ユーザー名:パスワードをBASE64で変換した文字列” -d '{“app”:アプリID}
原因が分かる方がいらっしゃいましたら、教えていただけると助かります。
よろしくお願いいたします。
サンプルもそうですが、単純に最後のシングルクオートが足りてないからとかではないでしょうか。
Ryu Yamashita様、ご回答ありがとうございます。
そうなんですね!サンプルが正解だと思い込んでいました・・。
修正してみましたが、全く同じエラーが出てしまいます。
ユーザー名:パスワードのBASE64等の項目も何度か確認してみましたが、特に問題もないように感じました。
もう少し確認してみます。
「入力内容が正しくありません」のメッセージは基本的に文字通りリクエスト内容(主にjsonの構造)の不整合を言っています。JSONの構造が仕様に沿ってなかったり、Content-Typeの指定等がうまくいってなかったりという原因が考えられますが、現状あまり疑わしきポイントは見当たらないように思いわれます。
こういう時にはまずリクエストの成功ケースを得るのが先決で、個人的にもcURLが一番オススメですがそれがうまくいってないとすると、別の方法ででもリクエストを成功させられるかがポイントかと思います。cURLでリクエストボディではなくてクエリにパラメータをのせるとか、別の RESTクライアントツールで成功させるといった具合です。
解決済みかもしれませんが、URLにクエリパラメタとして「?app=アプリID」をつけて、-d以降を消したらできました。
私もサンプルでハマりました…
curl https://サブドメイン.cybozu.com/k/v1/app/settings.json?app=アプリID -X GET -H ‘content-Type:application/json’ -H “X-Cybozu-Authorization: ユーザー名:パスワードをBASE64で変換した文字列”