Wio Nodeのノードで認証がうまく行かなくてManual TokenしたTIPS

この記事は<a href="http://qiita.com/advent-calendar/2016/nodered" target="_blank">Node-RED Advent Calendar 2016</a>の7日目の記事です。

前日は<a href="http://qiita.com/kuetsuhara@github" target="_blank">kuetsuhara</a>さんの<a href="https://ssdkfk.wordpress.com/2016/12/06/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%81%B0%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%84%E3%81%A3%E3%81%A6%E3%81%9F%E4%BA%BA%E3%81%A0%E3%81%91%E3%81%A9node-red%E3%81%A7%E3%81%AA%E3%82%93%E3%81%A8%E3%81%8Bapi/" target="_blank">フロントばっかりやってた人だけどNode-REDでなんとかAPI作った</a>でした。

さて、Node-REDで気軽にIoTできるWio Nodeという機器があります。

![wio-node-get-token_1.jpg](https://qiita-image-store.s3.amazonaws.com/0/56170/0dca0adf-7b40-4d2f-b91f-82f2396d8841.jpeg)

このノードで<a href="https://github.com/WarriorRocker/node-red-contrib-wio-seeed" target="_blank">Wio Nodeノード</a>で最初にログイン認証をしてトークンを取得しますが、うまく認証がとおらずトークン取得できないときがあります。

![wio-node-get-token_2.png](https://qiita-image-store.s3.amazonaws.com/0/56170/c96fa719-e667-1a63-57ff-3df0d38a66f2.png)

自分が解決したもので原因としては以下がありました。

* Wio Nodeサーバーの認証方法が変わった
* GoogleアカウントやFacebookアカウントでログインしていると認証が通らない
    * Wio Nodeの画面がメールアドレスID/PASSのみの対応なのでそういう状況になる
* なんだか調子が悪い

といったところです。困りましたね。

**というときはトークンを自力で取ってきます。**

# トークンを手動で取ってくる

以下の記事を参考に、

<a href="https://github.com/WarriorRocker/node-red-contrib-wio-seeed/issues/4#issuecomment-241943323" target="_blank">Unable to connect to new Wio servers · Issue #4 · WarriorRocker/node-red-contrib-wio-seeed</a>

```
awong1900 commented on 24 Aug
Hi,
New wio app(above android 2.3)use seeed account system.
Use https://wio.seeed.io/login to get wio token on Wio Global New/Old and Chinese server.
The login API still work on custom server.
We will modify API document. More clearly.
--from wio team
```

2016/12/06現在、以下のアドレスにアクセスします。

https://wio.seeed.io/login

![wio-node-get-token_3.png](https://qiita-image-store.s3.amazonaws.com/0/56170/9826ab02-9b32-aaa6-5910-8b02a94b6d8a.png)

すると、ID/PASSが聞かれるのでログインします。

![wio-node-get-token_7.png](https://qiita-image-store.s3.amazonaws.com/0/56170/9885ea91-6d92-5a7b-8070-5d149771b2ea.png)

はい。トークンが出てきます。

そう、2016/12/06現在、起きていることは「Wio Nodeサーバーの認証方法が変わった」です。

以前はJSONで返ってくるところのはずが、なぜかプレーンテキストで返ってきます。それはJSON想定のWio Nodeノードでは取得できませんよね。

# Wio NodeノードにManual Tokenで設定

では早速 v1 のところを拾って設定します。（どこかのタイミングでv2を使うのかもしれませんが、2016/12/06現在はよくわかりません。）

![wio-node-get-token_4.png](https://qiita-image-store.s3.amazonaws.com/0/56170/02d3ab23-7881-9dfb-8d95-3fe4d623c0d7.png)

Wio NodeノードのManual Tokenのボタンを押して、

![wio-node-get-token_5.png](https://qiita-image-store.s3.amazonaws.com/0/56170/156eeb57-f6e8-c9d3-19a7-21aec436b608.png)

Wioアプリで指定しているサーバーと、今回コピーしたトークンをペーストして反映させます。

こちらで取得してみると無事に情報を拾うことができるようになりました。

![wio-node-get-token_6.png](https://qiita-image-store.s3.amazonaws.com/0/56170/e1be52bb-496c-0bc5-9a79-a72a092adccc.png)

Seeed Studioのほうでも随時APIの更新をして仕様変えていくのは意欲的ではありますね。ただ、ノード制作者側もまさかJSONでなくプレーンテキストで返ってくるとは思いませんし、ちょっと難しいところにハマっています。

ひとまずは「認証がうまくいかないときは手動でトークンを取ってくる」というところで、切り抜けていきましょう！

# さて明日は

<a href="http://qiita.com/advent-calendar/2016/nodered" target="_blank">Node-RED Advent Calendar 2016</a>の明日は<a href="http://qiita.com/AmbientData" target="_blank">AmbientData</a>さんです！

気軽に可視化できるIoTクラウドサービス<a href="https://ambidata.io/" target="_blank">Ambient</a>、お世話になっております。楽しみです！