2013年11月18日月曜日

Yahoo! Web API 登録編

株式会社ジェニシス 技術開発事業部の遠藤 太志郎(Tacy)です。

しばらくは世に溢れる「WebAPI」の機能について検証していきたいと思います。

最初はヤフーのWeb APIです。

Yahoo! Web API


YahooはWebAPIをいくつも提供しておりまして、その種類も豊富。
WebAPI界の大御所と言えるでしょう。

しかも良い所は、日本語の説明ドキュメントがある点ですね。
Google、FaceBook、Twitter辺りだと英語しか無いので、大変助かります。

公式サイトは以下です。


さて、早速テキトーにリクエストを投げて……ん?



どうやらリクエスト送信には「アプリケーションID」の取得が必要なようですね。

このようにWebAPIにはIDの取得を求められることが多いです。
WebAPIは使えば使うほど、WebAPI側のネットワークやサーバの負荷が掛かりますので、誰がどれくらい使っているかを管理する為にIDが必要ということですね。

従量課金制になっている所も多く、リクエストが多いIDほど、多くの金が取られるということです。



  • WebAPI業者はIDで使用者を管理している。



逆に言いますと、「IDさえ分かればなりすまし可能」という意味ですよ。

つまり、「JSファイルにIDをベタ書きして、Ajaxでリクエスト発行」とかやるとJSソースを解析されてIDが盗まれますので、
大事なIDはサーバ側で保管しておき、WebAPI発行はサーバ側から行うと良いでしょう。




  • WebAPIのリクエスト発行はクライアントサイドからAjaxでも行えるが、セキュリティを考えるならサーバから発行した方が良い




以上、簡単なことですが大事なことなのでお忘れ無く。


アプリケーションID取得


では、本題のアプリケーションID取得に入りましょう。

YahooJapanにログインしている状態で以下のページにアクセスします。





ここの「新しいアプリケーションを開発」のボタンをクリックします。


すると、以下のような画面が表示されます。
(メアドが表示されていますので、その部分は隠させて頂きました)



これを見ると、「サーバサイド」「クライアントサイド」と、利用目的に応じて違う設定が必要なようです。
クライアントサイドの方に「OAuth 2.0 Implicit」と書いてありますが、これは超巨大なセキュリティホールが出来るという噂の認証方式……。
今回は「サーバサイド」を選択して進んでみようと思います。


そこから先に続くのは「アプリケーション名」や「サイトURL」等ですが、今回は動作検証用ですので、
デフォルト値のままにしておきます。

最後に「同意」を選んで確認ボタンをクリックしますと、確認画面を表示した後に、IDの取得が完了します。

次の画面に進んだ時には、もうIDが発行されています。
(モザイクで見えなくさせて頂いておりますが)



簡単ですね!!

アプリケーションIDは「ハッシュ値」みたいな文字列です。

上記にもありますが、アプリケーションIDは大事な値ですので、推測も出来ないようになっていなければなりません。
更に一意性も必要ですので、「ログインID+シーケンス番号した文字列をハッシュ変換」といった方式で出力しているものと推測されます。

そしてもう一つ、「シークレット」というものが出ています。
これにつきましては、調べたのですが詳細が分かりません。
YahooにはユーザIDがバレてもログイン出来なくする「シークレットID」なる機能もありますが、こちらはそれとは別物の模様。
詳細が分かり次第、記事にしたいと思います。


さて、これでIDの取得は完了です。
もうWebAPIを発行出来る状態になっています。

試しに、画面に表示されているサンプルリクエストを送信してみました。



ちゃんとレスポンスが返ってきていますね。
これで動作確認も取れました。

後は発行するだけでOKです。
実に簡単でした。

次回


次回からは、いよいよ本格的にWebAPIの機能検証に入ります。

0 件のコメント:

コメントを投稿