続【未完】シャープ製お掃除ロボット(cocorobo RX-V200)のAPIを叩く
続編ですが未完です。前回はこちら。
API叩いたら変なエラーが返ってきたというのが前回までのあらすじでした。問い合わせてみたところ「もっかい初期化してみて」というお返事をいただいたので再度初期化して再設定しました。結果該当のAPIエラーはなくなったという。担当者の方すいません。初期化&再設定という最も根本的な解決方法を試してませんでした。
というわけでちゃんと動くようになったのでAPIを叩く作業を再開したいと思います。
音声発話APIを叩く
どっちかというと使いたいのは音声発話APIなのでそっちを叩いてみます。発話APIはエンドポイントのURLが違うだけ。前回と同じくcurlで叩く。
curl -H 'Content-Type: application/Json' -d '{"apikey_cocorobo":"XXXXXXXXXXXXXXXXXXXXXXXX","message":"XXXXXXX"}' 'https://developer.cloudlabs.sharp.co.jp/cloudlabs-api/cocorobo/speech'
これでいけると思ったんですが、以下のエラーが返ってきます。
{"resultCode":"1","errorCode":"E010202","message":"Request Parameter Not Found."}
よくわからん。以下はトラブルシューティング的なやつと、上記エラーを検証したやつです。
APIのレスポンスが無い場合
前回のエントリにコメント頂いた「API叩いたのに返ってこない場合」のトラブルシューティングです。
cocorobo APIはヘッダーを引き渡さないといけませんが、大文字・小文字をちゃんと記載してないと何も返ってきません。前のエントリでは'Content-Type: application/json'となってますが、jsonの一文字目を大文字にしていただけるとたぶん通ります。
駄目なやつ
curl -H 'Content-Type: application/json' -d '{"apikey_cocorobo":"XXXXXXXXXXXXXXXXXXXXXXXX"}' 'https://developer.cloudlabs.sharp.co.jp/cloudlabs-api/cocorobo/auth'
大丈夫なやつ
curl -H 'Content-Type: application/Json' -d '{"apikey_cocorobo":"XXXXXXXXXXXXXXXXXXXXXXXX"}' 'https://developer.cloudlabs.sharp.co.jp/cloudlabs-api/cocorobo/auth'
とはいえレスポンスが返ってくるってだけで"errorCode":“E010202"は回避できません。
検証作業
エラーメッセージを読むと「パラメータが無い」とのことなので、ローカルホストにサーバを立てて各種パラメータを渡せているかどうかを検証します。 @aramoto さんにいただいたプログラムを使わせてもらいました。
【娘が泣き始めたので続きは明日書く!!】