【Facebook應用程式開發教學2】用Ruby on Rails輕鬆開發第一支App,傻瓜入門術!

照目前官方支援的情況來看,用php來寫facebook的應用應該是首選,但如果想用ruby on rails寫,也不是不行。這篇文章就拿ruby on rails來介紹fb ap的寫法,並整合正ㄏㄤ的Heroku hosting,如何在四個小時內,無成本的建立出你的facebook ap。
評論
評論

照目前官方支援的情況來看,用 php 來寫 facebook 的應用應該是首選,但如果想用 ruby on rails 寫,也不是不行。這篇文章就拿 ruby on rails 來介紹 fb ap 的寫法,並整合正ㄏㄤ的 Heroku hosting,如何在四個小時內,無成本的建立出你的 facebook ap。

在本篇文章中,一般性的 facebook ap 注意事項請參考 前一篇 ,本篇只針對 ruby on rails 特定的部分做介紹。一樣,拿已經寫過的" 朋友點點名 "為例,來介紹怎麼入手。

ask_friends

0.  首先,還是玩一下" 朋友點點名 "這個應用 !瞭解一下他做了甚麼事情。

1.  介紹一下"朋友點點名"的流程:

首先確認是否授權"朋友點點名"存取你的 facebook 資料。

授權後,facebook 會問你,想取得"自動發佈 wall" 的權限。

接下來,系統自動選一個你的朋友,顯示他的圖片,並且自動問你一個問題,你需要輸入你的答案。

回答後,你的回答就自動發佈到該朋友的 wall 上面了。

這裡牽涉到的部分比 php 寫的那支較多,底下開始快速的介紹:

3. 安裝 facebooker plugin

開一個 rails 專案

rails testproject

在你的 rails 專案裡,安裝 facebooker plugin

cd testproject script/plugin install git://github.com/mmangino/facebooker.git

4. 建立 heroku 帳號與環境

首先,先到 http://www.heroku.com 申請一個帳號

確定申請好了之後,在你的 linux 環境中,用 root 執行

gem install heroku  //這樣就可以使用 heroku 相關指令,遠端管理操作  heroku create testproject //建立 heroku 上的一個 ror 執行專案,會問你 Heroku credentials,輸入你剛建立的 heroku 帳號的 email 跟密碼,這樣就可以建立完成。本例子中, testproject 是專案名稱。

上述步驟如果成功完成,畫面上會吐出一串字,類似:

        Created http://testproject.heroku.com/ | [email protected]:testproject.git

其中,http://testproject.heroku.com/就是你的網站網址!對於小程式來說,你連 domain name 都不用申請就可以把 ap 放到 facebook 上了。而 [email protected]:testproject.git 這行就是 heroku 上幫你開的 source code 存放的地方了。

接下來,我們把剛剛產生的 rails 專案都放上去吧!

前提是,你得會用 git,而且有安裝了 git。本篇就不描述相關安裝方法。

在 testproject rails 專案的目錄中

git init git add . git commit -m "the first time" git push [email protected]:testproject.git master

至此,你會看到類似這樣的訊息:

Counting objects: 62, done. Compressing objects: 100% (55/55), done. Writing objects: 100% (62/62), 79.37 KiB, done. Total 62 (delta 10), reused 0 (delta 0)  -----> Heroku receiving push -----> Rails app detected Compiled slug size is 80K -----> Launching....... done http://testproject.heroku.com deployed to Heroku  To [email protected]:testproject.git * [new branch]      master -> master

那麼,看一下 http://testproject.heroku.com,就看到了最基本的 ruby on rails  server 已經跑起來了!你有了一個 server 可以用了!

當然,這樣的使用只能作為實驗等級,大規模運用還須對 heroku 有進一步的瞭解,並且需要$$。但是我們現在可以用這個免費的資源來做點有趣的事情吧。

5. 到 facebook 上面建立一個新程式,拿到 api key 等資料,修改 config/facebooker.yml

當裝了 facebooker plugin 後,專案的 config 目錄會多一個 facebooker.yml 的檔案,修改其中 production: 的段落

最重要的只有三行

api_key: 填入吧 secret_key: 填入吧! canvas_page_name: /

這樣,準備工作差不多完成了,底下開始寫 facebook 相關的程式碼了!

6.  讓使用者授權 testproject 可以存取 facebook 上他的資料

在 controller 裡面加上這兩行

ensure_application_is_installed_by_facebook_user filter_parameter_logging :fb_sig_friends

7. 隨機挑選朋友

在 controller 裡面,寫這行。那麼@friends 這個 array 就是你所有朋友打亂排序的結果。

@friends= (facebook_session.user.friends.sort_by {rand})

8. 顯示朋友圖片

在 view 裡面,這樣寫:

<fb:profile-pic uid="<%[email protected][0].uid%>" size="normal" />

9. 要求同意自動 publish 到 wall 的權限

在 view 裡面,加上

<script> Facebook.showPermissionDialog('publish_stream'); </script>

至於跳出一個視窗說要 publish 感想到朋友的 wall 上的寫法,請參閱 php 那篇

10. 重新上傳 code 到 heroku 去

專案根目錄下,執行

git add . git commit -m "the first time" git push [email protected]:testproject.git master

看到 server 重新啟動之後,連到你的 facebook app 試試看囉! http://apps.facebook.com/ask_friend/

11. 遇到問題!

執行的時候難免遇到問題,想查 log 的話,打

heroku logs --app testproject  //把 testproject 換成你的 heroku project 名稱

以上,快樂的開始寫 facebook ap 吧~如果有問題,也歡迎留言討論,教學相長。