Facebookの日本語版が正式公開されました

多くの人々にとっては「Facebookって何?」って感じだろう。そのFacebookの日本語版が本日正式に公開された。
「Facebook」日本語版公開 ”実名交流”でmixi追撃 – ITmedia
Facebookは、アメリカでMySpaceに次ぐ第2位のシェアを持つSNS。Facebook PlatformというSNSアプリケーションを開発するためのプラットフォームをいち早く公開し、新しいインターネットアプリケーションの形態を世に知らしめたSNSとして有名である。
今までのFacebookは、多くの言語にローカライズされてきていたのだが、日本語対応についてはなかなか見えてこなかった。しかし、翻訳作業をユーザに行ってもらう「Translation」アプリケーションを開発し使ってもらうことで、驚くほど早い翻訳作業が現実のものとなった。
すでにFacebookには1万を超えるアプリケーションが登録され、すぐに使える状態となっている。今後日本でもシェアが徐々に増えていくことが予想される。SNSアプリケーションプラットフォームが正式に整備されているという点では、やはりOpenSocialに比べて数十歩先を行っているので、そういう点でも多くの日本のネット利用者は、Facebookを体感しておいて損はない。
ただし、僕の個人的な見解としては、あくまでFacebookはSNSアプリケーションプラットフォームの1つに過ぎない。そして、Facebookの独自APIは、将来的な明るさはそうでもないと思っている。Microsoftが買収するとかしないとか噂があるが、なぜか僕には「OpenSocial vs Facebook」が「Java vs .net」に見えて仕方がない。

日本にもFacebookブームが来る予感

今日、Facebookにログインすると、こんなものが表示された。
facebook-translation.jpg
これが噂の「翻訳アプリ」のようだ。このアプリをインストールすると、FacebookのUIがちゃんと日本語化されつつあることがわかる。すっかり英語のUIに慣れてしまったため、漢字とか表示されてると、かなりの違和感である。
日本ではOpen Socialの方が流行するのが早いと思っていたが、Facebookの翻訳プロジェクトの進み具合によっては、日本にもFacebook旋風が吹き荒れる、かも。

Ruby on Railsでもfacebookアプリは作れます(3)

かなりもったいぶっている「Ruby on Railsでもfacebookアプリは作れます」シリーズだが、やっと今回からrfaceookプラグインを使って実際にfacebookアプリを作る話をしてみようと思う。

rfacebookプラグインを使ったRuby on Railsでのfacebookアプリの作り方は、前のエントリでも紹介した通り、

にて紹介されている。基本的には、上記に書かれている手順を踏めば良い。とはいえ、僕は最近JRubyがお気に入りなので、JRubyのインストールから順に説明していきたいと思う。もちろん、MySQLのインストールは完了していることが前提。

まず、以下の場所から、JRury1.0.2のアーカイブをダウンロードし、任意の場所に展開する。

jruby-src-1.0.2.tar.gz

展開後のディレクトリに移動してantを実行(antがない人はapache-antから入手)すれば、jrubyコマンドを得ることができる。あとは、

  • 環境変数JRUBY_HOMEに展開したディレクトリを指定する。
  • 環境変数PATHに「$JRUBY_HOME/bin」を追加する。

の2点を施せば、JRubyの準備が完了する。あ、言い忘れたが、JDKの入手とインストールが大前提。

次に、JRubyに付属しているgemを使って、Railsをインストールする。この際、先週リリースされたRails2.0はrfacebookプラグインが正しく動作しないために、Rails1.2.6をインストールすることにする。その後、他に必要となるものも、順次インストールする。

jruby -S gem install -v=1.2.6 rails –include-dependencies
jruby -S gem install jruby-openssl
jruby -S gem install activerecord-jdbc

特に最近はRails2.0のリリースがあったために、サーバにアクセスが集中していることが多い。その場合404などが返されるので、何度か繰り返してみて欲しい。

さて、いよいよrfacebookのインストールだ。やはりgemを使ってインストールすることができる。

jruby -S gem install rfacebook

途中で「hpricot」のインストールを行うか聞かれるので、「Y」をタイプしてインストールを指示し、さらにプラットフォームを聞かれるので、「1」のjrubyを入力する。引き続き、「mocha」のインストールを行うかも聞いてくるので、やはり「Y」をタイプしてインストールを指示する。その後、rfacebookのインストールが行われる。上記であれば、rdocも一緒にインストールされるはずだ。

これでgem系の準備は完了。次は、実際にfacebookアプリケーションの開発に移る。何はともあれ、railsコマンドでプロジェクトを作成しよう。

jruby -S rails fb-test

これだけだと、普通のrailsアプリである。このプロジェクトに、rfacebookプラグイン(正確にはrfacebook_on_railsプラグイン)を導入する。

cd fb-test
jruby ./script/plugin install svn://rubyforge.org/var/svn/rfacebook/plugins/rfacebook_on_rails

上記のコマンドを打てば、Subversionサーバから勝手に一式ダウンロードしてくれるのだが、例えばNetBeansを使って開発している場合は、svn://が使えない。その場合は、ここからダウンロードできるzipファイルを、vendor/plugins/rfacebook_on_railsディレクトリ以下に展開すれば同じことになる。

もうひとつ準備が必要になる。rfacebookプラグインをインストールすると、facebook:setupというrakeタスクが追加されるので、これを実行しておく。実行が完了すると、config/acebook.ymlというファイルが生成される。このfacebook.ymlファイルに、facebookアプリケーション固有の設定を記述することになる。

jruby -S rake facebook:setup

さて、前のエントリで、僕は以下のようなことを言っている。

しかし、非常に残念なのだが、上記URLではRFacebookはちゃんと動いてくれない。RFacebookのForumで「facebook APIの脆(もろ)さは、PHP、ASP、そしてJavaコミュニティに感じる脆さなんだよ」といった過激な発言がでるくらいの原因で不具合が出てしまうのだが、これの解決策はあるのでご安心を。

rfacebookの現在のバージョン(0.9.7)では、facebookとの認証処理後にfacebookから送られているリクエストの2発目以降についてちゃんとパラメータを解釈してくれない、という不具合が潜んでいる。これはrfacebook開発側から言うと「facebookが送ってくるパラメータが不安定」という言い方がされているのだが、何はともあれ動かない。

この問題を解決するための方法が、forumに投稿されている。

more facebook sessions problem – Ruby on Rails Facebook

このページの2007年10月26日付けのcocotron氏による投稿(今日時点でページの一番下)に、パッチのコードが掲載されている。これを、fb-test/app/controller/application.rbファイルに記述する。

これにより、通常のfacebookからのGET, POSTリクエスト(Ajax含む)の処理が、rfacebookプラグインで正しく行われるようになる。

最後に、facebook.ymlファイルへの設定方法を紹介しておく。facebook.ymlには、rfacebookプラグインが動作をするために最低限以下の設定を記述しておく必要がある。development, test, そしてproductそれぞれ設定項目は一緒である。

  • key: facebookから割り当てられたAPI Keyを記述する。
  • secret: facebookから割り当てられたSecretを記述する。
  • canvas_path: アプリ登録時に入力したCanvas Page URLの入力した部分(「http://apps.facebook.com/★/」の★)を、前後に「/」を付けて記述する。
  • callback_path: アプリ登録時に入力したCallback Urlのコンテキスト部分(例:「http://www.eisbahn.jp:3000/★/」の★)を、前後に「/」を付けて記述する。

API KeyとSecretに関しては、facebookのDeveloperアプリケーションの右上にある「My Applications」区画の「See My Apps」リンクをクリックすると出てくるアプリケーション一覧ページで確認することができる。もしまだアプリケーションを登録していない方は、前のエントリを参考にして欲しい。

以上で準備は完了。次は、ControllerとViewを作成して、facebookアプリが稼働することを確認してみたいと思う。

— 2007/12/14 追記

rfacebookのパッチコードをActionControllerクラスの中に記述すると再定義されないため、ActionControllerクラスの外にパッチコードとなるRFacebookモジュール定義を記述するように、蒸気コードを変更しました。

Ruby on Railsでもfacebookアプリは作れます(2)

前のエントリで、facebookアプリがRuby on railsでも開発することができるということを紹介した。数回にわけて、実際にアプリを作るための手順を紹介していこうと思う。もちろん、facebookにアカウントを登録してサインインしていることが前提条件。
まず、アプリケーション開発を行うためのアプリケーション「Developer」を、自分の登録アプリとしなければならない。Developerアプリを使用することで、新規アプリの登録が行えるようになる。Developerアプリの登録は、以下のページにある「Add Facebook Developer Application」リンクをクリックすることで実施することができる。
Facebook Developers | Get Started
で、さっそくアプリを登録したいところなのだが、その前にfacebookアプリの仕組みについて把握しておかなければならない。まず、下の図を見て欲しい。
facebook3.jpg
Webブラウザに表示されるのは、あくまでfacebookのWebページである。そのページの一部分を、自作アプリケーションの出力結果で埋めることができる、という仕組み。なので、あくまでWebブラウザからのリクエストは、必ずfacebookサーバを中継して、その後にあなたのアプリケーションサーバに届く。そして、処理結果としてFBML(HTMLのサブセット)を返し、それがfacebookサーバ内で解釈され、解釈結果が埋め込まれたfacebookページとしてWebブラウザに返される、という流れだ。実際には、rfacebookプラグインがfacebookサーバと認証処理を行ったりするので、2.から3.の間でやり取りが発生するのだが、それはrfacebookプラグインが隠蔽してくれるので、気にしなくて良い。
なんでこんな根本的なフローを説明したかというと、Developerアプリで自作アプリを登録する際に、前もって決めておかなければならない情報が出てくるから。具体的には、あなたのWebアプリケーションをfacebookが呼び出しに行く際のURLを決めておかなければならい。例えば、www.eisbahn.jpドメインで3000番ポートでrailsアプリケーションを起動し、facebookサーバからのリクエストをcanvasコントローラで受け付ける、とするなら、
http://www.eisbahn.jp:3000/canvas/ ・・・(1)
というURLを決めておく、ということである。
では、アプリの登録を始めてみる。Developerアプリを左のナビメニューから実行する。
facebook1.jpg
すると、右上に「Set Up New Application」というボタンが出るはず。それをクリックすると、登録フォームが表示される。
facebook2.jpg
入力しなければならない項目は、以下の通り。

  • Application Name: アプリ名(任意の文字列)。
  • Check here to…angree to the term…: ライセンス同意(チェックを入れる)。
  • Optional Fields: 展開する。
  • Callback Url: あなたのアプリのURL(上記の(1)のURL)。
  • Canvas Page URL: アプリを呼び出すためのURL(任意の文字列)。
  • Use FBML: にチェック。
  • Can you app…added on Facebook?: Yesにチェック。
  • Who can…Facebook account?: Usersにチェック。
  • Post-Add URL: アプリが追加された後に呼び出されるURL(Canvas Page URLをそのまま入力)。
  • Developer Mode: チェックを入れる(自分しかそのアプリは使えない状態)。
  • Side Nav URL: 画面左のナビに登録するアプリのURL(Canvas Page URLをそのまま入力)。

あとは[Submit]ボタンを押せば、アプリケーションの登録は完了である。Canvas Page URLにブラウザでアクセスすることにより、アプリケーションをCanvasにて起動することができるようになる。
ここでのハマりポイントとしては、

  • Callback Urlの最後に「/」を打ち忘れると、例えば「<a href=”hoge”>…」とリンクを作っても「http://〜/canvashoge」となってしまう。
  • 誰かにアプリを試してもらいたくても、Developer Modeの場合は「そんなアプリはないよ」となってしまう。
  • Use FBMLとUse iframeを間違えると、facebookとあなたのアプリ間でのやり取りが全く違ってくるために、わけわかめになる。

といったことがあげられる。特に1つ目のハマりポイントは、やってしまいがちなのでご注意を。
これでfacebook側の準備は完了。実際にCanvas Page URLにアクセスすると、あなたのサーバにfacebookから要求が飛んでいることがわかるはずである。以下のようなページや、明らかに出るな的なエラーメッセージが表示されれば、成功である。
facebook4.jpg
残念ながら、このエントリも長くなってしまったので、rfacebookプラグインを使ったRailsアプリの作り方は、またもや次回に持ち越すこととしよう。

Ruby on Railsでもfacebookアプリは作れます

facebookが「ソーシャルOS」と呼ばれる所以は、facebook上にアプリケーションを自作して登録し、facebookユーザに使ってもらうことができる、ということにある。自作アプリケーションは、当然facebookが持つ様々な機能と連携することが可能である。例えば、アプリケーションで起きたことをMini-Feedに追加したり、プロフィール画面にアプリケーション固有の区画を追加したり、あるいはアプリケーションを自分の友達に勧めたり、といったことが、比較的簡単に実現できる。とても面白い。
では、facebookアプリケーションを実際に開発するためにはどうしたらいいか。これ、非常に敷居が高いと言わざるを得ない。いや、それは僕がPHPをメイン言語にしていないから、かもしれない。日本語のドキュメントはゼロ。ググっても日本語の情報は皆無。そしてPHP以外のサンプルは公開されていない。これだけでも、尻込みしてしまう人は多いだろう。
facebookチームが正式に公開しているライブラリは、PHPとJavaのみである。これは、「Facebook Developers | Resources」(このURLからわかる通り、facebook自体がPHPでできている)というページで見つけることができる。僕は長らくJavaをやってきたが、Ruby on Railsの敷居の低さ(= 環境構築の容易さ)に魅せられ、facebookアプリケーションもやはりRailsで作ってみたい。
幸いなことに、facebook unofficialではあるが、ASP.NET、ASP(VBScript)、ColdFusion、C++、C#、D、Emacs Lisp、Lisp、Perl、Python、VB.NET、Windows Mobileといった言語・環境向けのクライアントライブラリを、「Facebook Developers Wiki」ページから辿ることにより入手可能である。そして、もちろんRails向けにも、クライアントライブラリは存在する。それが、
RFacebook – now with RAILS plugin」
である。
このRFacebookは、Railsのプラグインとして提供されている。何をしてくれるかというと、

  • facebookとの認証処理をやってくれる。
  • facebook Web APIを叩いてくれる。

という主に2点のみ。ま、この2点が非常にでかく、facebookアプリケーションの全てと言ってもいいくらい。僕は最近JRuby & Glassfishという組み合わせが大好きなのだが、もちろんRFacebookを使ったRailsアプリも、warにしてGlassfish上で稼働させることは可能である(実際に今やってる)。
RFacebookに関するチュートリアルは、以下のURLが非常に参考になる。もちろん上記URLの内容を素直にやっていけば、期待通りにfacebookに自作アプリケーションの最初の画面をFBMLを使ったりして表示させることができる。

しかし、非常に残念なのだが、上記URLではRFacebookはちゃんと動いてくれない。RFacebookのForumで「facebook APIの脆(もろ)さは、PHP、ASP、そしてJavaコミュニティに感じる脆さなんだよ」といった過激な発言がでるくらいの原因で不具合が出てしまうのだが、これの解決策はあるのでご安心を。
そんなわけで、facebookアプリケーションをRailsで作るための具体的な手順は、後日としよう。そろそろ電車が新宿に到着するので。。。

Get Adobe Flash playerPlugin by wpburn.com wordpress themes