TechTalkManiacsスマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。読者です読者をやめる読者になる読者になるTechTalkManiacsこの広告は、90日以上更新していないブログに表示しています。2011-01-24JavaScriptでお手軽にFacebookのアプリを作るFacebookAPI前々から書こう書こうと思っていた、FacebookのJavaScriptSDKの解説エントリーです。APIや規格、HipHopやliftといったオープンソースなどの陰に隠れがちですが、このJavaScriptSDKもなかなか面白いです。SDK投稿・認証・署名を含めた全APIアクセスをサポート公式なUIもついてくるFacebookアプリも、外部のマッシュアップサイトもこれ一つでOKつまり、これ一つで簡単なクライアント機能をもったサイトまたはFacebookアプリが作れちゃいます。情報を取ってきてなにか書いてもらって投稿するのはもちろん、ちょっとしたクローリングをおまけにつけたアプリまでJavaScriptの範囲内で完結しますので、サーバー側で凝った処理を実装するのではなく、JavaScript側で可能な限り完結させるのがベストプラクティスといえます。試すGoogleのAjaxCodePlayGroundと同じように、Facebookにも公式のテストページがあります。横のログ表示部分で返り値も確認できるので便利です。基本的に、ここでのテストを前提に話を進めていきます。下のサンプルリンクからいくつか試してなんとなくでいいので感じを掴んでみてください。インストールして試したい場合はこちらのエントリーが参考になります。し、以下の2点に注意が必要です。SiteにあるサイトURLをテスト用サーバーのURL(たいていはhttp://localhost/。最後の/が必要なので、ポート番号をつける場合は注意してください)に設定しておく必要があります。前述の通りこれはFacebookアプリとして動作させる場合も同様です。アプリのページをiframeに設定しておけばFacebookアプリの見た目のテストもローカルにおいたまま出来ます。公開用とは別にテスト用のアカウントを取得しておくといいでしょう。リンク先で例示されているHTMLのbody直下にある、idがfb-rootの空のdivはFacebookの独自タグであるFBMLを操作するのに必要です。意外とこれは内部的にも使われているので、消さないでください。ログインFacebookAPIを使うのにまず大事なのはログインです。//パーミッション不許可。{perms:'read_stream,publish_stream,offline_access'});}重要なのは引数の二番目のパーミッションの指定で、Facebookでは情報取得についてかなり細かく許可するかしないかが分かれています。詳しい内容はPermissionsを見てください。パーミショションの指定は許可内容を表す文字列をカンマでつないだ文字列となります。API編)いくつかサンプル使ってみると、APIを叩くような基本的な操作はFB.apiという関数一本でまかなわれているのが解ると思います。このFB.apiは最初の引数の型によって操作するAPIとURLが異なります引数は最低二つ、最大で四つです。二つ目の引数に連想配列を指定した場合、これをクエリのパラメーターとして解釈します。FB.api('/search',{q:'test'},your_callback);また、2番目の引数が文字列の場合、それをリクエストメソッドとして解釈しようとします。showMe);});&lt;/script&gt;FB.apiを攻略しよう(FQL編)最初の引数に連想配列が与えられた場合、FB.apiはmethodに設定された値を元にhttps://api.facebook.com/method/の下にあるアドレスにアクセスしようとします。このURLの下にあるのはSQLライクな文法でFacebookのデータを検索できるAPIであるFQLです。});&lt;/script&gt;実際には、FQLはFB.Data.queryという関数があり、そちらを使った方が色々と便利です。前述のコードを書き直すとこのようになります。});&lt;/script&gt;このようにサーバーサイドスクリプトでおなじみの変数バインディングや、サブリクエリのサポート、複数のクエリを同時に投げてその結果を待つFB.Data.waitなどなかなか面白い機能があります...が、肝心のFQLが意外と使えません。インデックスされている範囲が痒いところに手が届かないというか。サブクエリもできるのですがありえないレベルで重く、お世辞にも実用的とは言いがたいです。APIで取れない情報が取れたりすることもありますし、一応、期間を限った検索はFQLの方が得意ですので、もしGraphAPIでダメそうならばドキュメントに目を通しておくといいでしょう。FBアプリを作りませんか?こんな風に、FacebookはJavaScriptSDKとHTMLを使うと手軽にアプリケーションを作る事ができます。情報を取ってきてFacebookに投稿するだけのアプリであれば、多分一日くらいで出来るでしょう。Blog|ブログを報告する。