「POSTMANを使ってみる。」の続き。
ESP8266からPUSHとかGETとかを送って、ThingSpeakの機能を使う。
このとき、実際にどうやりゃいいのさ、というのが良く分かってない。
まあ、人様の物まねをさせていただいて、どうにかなってはいる。
POSTMANを試していてCodeというボタンをクリックしてみたら、
GENERATE CODE SNIPPETSという窓が表示される。
ちゃんとした意味は良く分からないが、直訳で「生成されたコードの断片」となる。
これが実際に送られているコードだとしたら、この通りの文字列をESP8266から送ってやればいいことになる。
いろいろ書いてある中で1つだけ、「Postman-Token」のあとのコードが良く分からない。
設定でOFFにしたら表示されなくなり、それでもThingSpeakにはちゃんとコードが送られたので、とりあえず無視することにした。
最終的に以下を送るように、ESP8266をプログラムする。
1 2 3 4 5 6 |
POST /talkbacks/<TALKBACK_ID>/commands HTTP/1.1 Host: api.thingspeak.com Content-Type: application/x-www-form-urlencoded Cache-Control: no-cache api_key=<YOUR_TALKBACK_API_KEY>&command_string=TURN_ON |
ところが、コードを書いていくら試しても、最初は全く受け付けられなかった。
ThingSpeakに測定データを送っている例なら普通にたくさんあるので、もう一度それらを見直してみた。
そして、下の赤枠のように書き直したらうまく送れるようになった。
api_keyやcommand_stringsを送るときに、
Content-Length:文字数、改行、文字列
を、この順に送るように変更したことになる。
したがって、文字数を数えられるように、送信する文字列をあらかじめ postStr にため込んでおき、文字数を送ってから postStr を送る。
余分なことをやっていたり、必ずしもベストなコードではないかもしれないが、一応、これで目的は果たせている。
ESP8266関連記事一覧へ