しばらくは世に溢れる「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 件のコメント:
コメントを投稿