Wonderfl API を使ってみよう!

おひさしぶりです
前回の更新からかなり放置していましたすいませんw

今朝ふとwonderflをみるといつの間にかAPIなるものがありました
(゚Д゚≡゚Д゚)エッ!って思ったけど本当に公開された直後だったらしく、バグもあったのですが現在は直ってます

とーいうことで!さっそくAPI使ってみよー!
ほぼwonderfl APIと同じことしか書いてないので英語読むのが早い人はこっち読んでくださいw

規約

まず、APIを使う時の規約はwonderfl API Terms of Serviceで確認できます
適当に和訳すると

  • APIは非商用だけだよ。商用で使う時は連絡してね
  • APIは勝手に変えるときがあるよ
  • 優しく使ってね/// いっぱい使う時は連絡してね。勝手にAPIキー無効にすることもあるかもよ
  • 他の人のコードのライセンスに注意してね
  • APIを使ってるって示すために、http://wonderfl.net/へのリンクを貼ってね。”powered by wonderfl“推奨
  • かっちょいいもん作ったら教えてね!ブログで紹介するかもよ!
  • こんな感じ (間違ってたら教えて><)

    APIキー

    APIを使うにはAPIキーを取得する必要があります

    ただし、wonderfl内でしか使わないという人は、wonderfl用のAPIキーがあるのでそれを使います。
    FlashVarsにopen_api_keyというAPIキーが入った変数が用意してあるので、コード内で
    loaderInfo.parameters.open_api_key とやればAPIキーがとれます

    さて、本題に戻ってAPIキーを取得しましょう
    create an API key ここからAPIキーを貰ってきましょう
    URLとAPIを使うアプリの説明を書いて送ればすぐその場ですぐキーが返ってきます
    説明はぶっちゃけ適当で(ry

    APIの基本

    APIは基本的にHTTPのGETで行います
    将来的にPOSTでできるようになるかも
    応答はJSON形式で返ってきます。個人的にXMLが好きなのだけど今のとこJSONしかないのでJSONを使います

    APIを使う時の基本となるURLはhttp://api.wonderfl.net/です。
    APIを使う時はこのURLとAPIのURLを合わせて使う形になります

    存在しないAPIやユーザー名を使用した場合
    {"stat":"fail","message":"not found"}
    このような、statがfailで、messageにはその時のエラーメッセージが入ります

    APIが通った場合
    {"stat":"ok",...snip...}
    このようにstatはokとなり、応答の詳細が続きます

    API

    APIは公式には今のとこ4つだけです
    今後増えていく・・・のでしょうか?期待ですw
    APIの詳細はwonderfl API Methodsに書いてあるのでこちらを参照してください

  • GET /user/<username>/codes?api_key=<api_key>
  • 指定したユーザーの情報を取得する

  • GET /user/<username>/codes?api_key=<api_key>
  • 指定したユーザーの投稿したコードの情報を最大20件取得する

  • GET /code/<codeid>?api_key=<api_key>
  • 指定したコードの情報を取得する

  • GET /code/<codeid>/forks?api_key=<api_key>
  • 指定したコードをforkしたコードの情報を最大50件取得する

    つまづきそうな箇所
    ・JSONの処理
    JSONはas3corelibを使って
    JSON.decode(data)
    とすればJSONをObjectに変換して簡単に扱うことができます

    ・description
    改行が\r\nとなっているのでどちらかを削除しないと二重に改行されてしまいます

    ・thumbnail
    サムネイル画像のURLはどうやら2種類あるようです

    http://capture.heartrails.com/100×100/border/delay=1?http://wonderfl.net/capture/b11cbe9636ed72690e77dde34bdeeaaf8c5624e8

    のような形式と

    http://wonderfl.net/images/capture/5/56/5601/5601a21e701eecbd53a2eb119622b6b326690c7c.jpg

    のような形式があるようです
    前者はデフォルトで100*100ですが、後者は465*465なので扱いに気をつけてください

    ・created_date/modified_date
    取得したcreated_date/modified_dateを1000倍するとUNIXTIMEとしてDateクラスに適用できます

    example

    4つのAPIのうち、ユーザーの情報を取得するAPIと、ユーザーのコードの情報を取得するAPIを使ってサンプルを作りました
    手抜きでサーセンw

    コードを表示するTextAreaにzahirさんの自作 TextArea ver.3を使わせていただきました

    要望

  • 今はJSONだけなのでXMLでも取得できるようにしてほしい
  • ユーザーのコード情報を取得するAPIでもfav数などを含めてほしい
  • following/followerを取得するAPIが欲しい
  • ユーザーランキング/コードランキングを取得するAPIが欲しい

    wonderflこれからも期待してます!w

    このエントリーを含むはてなブックマークはてなブックマーク - Wonderfl API を使ってみよう! この記事をクリップ!Livedoorクリップ - Wonderfl API を使ってみよう! BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This
  • Leave a Comment

    Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.