mixiアプリを動かしてみよう(応用編)
外部と連携しよう
mixiアプリではJavaScriptで動くため、外部ドメイン制約を超えたデータを取得するのに便利なgadgets.io.makeRequestというAPIが用意されています。makeRequestは、普通のAjax通信とは異なり、どんなドメインのデータも取得出来、メソッドもGET/POST/PUT/DELETEすべてをサポートしており、レスポンスもTEXT/DOM(HTML)/FEED/JSONと幅広く解釈出来るため非常に強力です。署名も付与出来るため、本当にmixiのコンテナを経由したことを証明出来、ユーザーIDの改ざんを防ぐことが出来ます。
makeRequestを使ってはてなブックマークのhotentryのRSSを取得するコードは以下のとおりです。
ここで重要なのはgadgets.io.makeRequest関数です。外部のコンテンツを取得するには、urlと取得する時の設定を用意しておいてmakeRequest関数を呼び出すだけです。
gadgets.io.makeRequest(url, callback, opt_params)
第1引数にはurlを文字列で指定します。第2引数にはコールバック関数を指定します。コールバック関数の引数にはmakeRequestの結果が入っています。第3引数にはgadgets.io.RequestParametersをキーに持つObject(hash)を指定します。ここではCONTENT_TYPEにFEEDを、NUM_ENTRIESに10を指定しています。
署名の検証は今回は解説しません。詳しくは以下のページを参考にしてください。
詳細情報:mixi Developer Center「外部サーバを呼び出してみよう」
mixiの独自APIを使ってみよう
コミュニティは、ユーザーの所属や属性、そして関心のある分野など様々な情報を含みます。このコミュニティという機能はOpenSocialでは定義されていませんが、mixi独自のAPIとして提供されています。mixi独自APIは他にもありますが、今回はコミュニティの情報を取得してみましょう。viewerの所属しているコミュニティの一覧を取得するコードは以下のとおりです。
コミュニティを取得するにはmixi.newFetchCommunityRequestを使います。今までと違って、opensocialというnamespaceではなく、mixiのnamespaceであることに注意してください。これをnewFetchPersonRequestと同じようにDataRequestにaddして取得します。
Object newFetchCommunityRequest(id, opt_params)
第1引数には取得する対象を、第2引数は省略します。