とりあえず、ちまちまメモっていきます。
認証ページを得る
OAuth 2 っぽいんだけど、OAuth 2 の知識全くないです! ハイ
- POST /auth/forward
- localtion=https://miiverse.nintendo.net/
これをすると
- Location:
- https://id.nintendo.net/oauth/authorize
- client_id=...
- response_type=code
- redirect_uri=https://miiverse.nintendo.net/auth/callback
- state=...
が返ってきます。Location というヘッダーで帰ってくるので必然的にリダイレクトしたらページも来るわけだけど、必要な情報はこれで揃ってるのでリダイレクトはしなくていいです。
認証
上記の値と
- nintendo_authenticate=
- nintendo_authorize=
- scope=
- lang=ja-JP (en-US とか適切に指定すればいいかと)
- username=[Nintendo Network ID]
- password=[NNID に対応するパスワード]
で、Location に callback が返ってくるので、これで Miiverse に戻るといった感じ。
Miiverse はクライアント、Nintendo Network ID システムがサービス プロバイダーって関係で動いてるんでしょう。ただし、認証(初期の許可って言えばいいのかな。そんなダイアログでないよね?)は「Wii U または 3DS のみで行える」といった感じなんではないのでしょうか? 一度認証を行えば、以後は確認を行わないので、非常にシンプルなモデルになるといえます。
残り
認証がうまくいったらスクレイピングあるのみ。Wii U のほうはだるいから確かめてないけど、3DS も所詮は HTML ベースっぽいので、Web API で json response が得られるとかはないっぽいです (すごくほしい… そして third 向け API もほしい)。
ちなみに、ms っていうクッキーでセッション管理してるから注意な。
Miiverse は面白いのに、Web ページしかないっていうのが現状のネックで、私はアプリ派なので、やっぱりこういうこともっと頑張ってほしいな、って思います。
お知らせ
今回は Miiverse クライアント実装するために起こした記事なんですけど、1 日でアクティビティー取得できるレベルまで言ったので公開しました。
非公式 Miiverse クライアント公開しました。まだまだ開発中ですが、一応ポストは取得できるはず(ただし 1 ページ目に限る)。まだまだこれからですが、一応公開しました。ライセンスは MIT。 https://t.co/OSBVRUZ0ih
— モノトーン@わかばシューター使い (@mntone) 2015, 5月 19
動作はこんな感じ。
やっと動いたー。今日中に GitHub に push しよー。 pic.twitter.com/UCuev2i86v
— モノトーン@わかばシューター使い (@mntone) 2015, 5月 19
以上