続【未完】シャープ製お掃除ロボット(cocorobo RX-V200)のAPIを叩く

続編ですが未完です。前回はこちら。

quzee.hatenablog.com

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 さんにいただいたプログラムを使わせてもらいました。

【娘が泣き始めたので続きは明日書く!!】