同步發布在http://www.inside.com.tw

照目前官方支援的情況來看,用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/ | git@heroku.com:testproject.git

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

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

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

在testproject rails專案的目錄中

git init 
git add . 
git commit -m "the first time" 
git push git@heroku.com: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 git@heroku.com: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="<%=@friends[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 git@heroku.com:testproject.git master

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

11. 遇到問題!

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

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

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

晚上參加了伯朗咖啡館的聚會。

馬上有個心得,台灣網路市場肯定要變盤了,速度會比任何想像的要快。

這麼多的人以及沒有看到的人將會用facebook開放平台將高姿態的無名與雅虎踢出去。

facebook大軍衝啊~

生.呼吸

http://li-air.cc/home

加入社群吧…..

Philipz學習日誌上看到,很簡單的一個Firefox bookmarklet.

稍微修改一下後,可以用在n詞酷上來查長句短句 中英單字了.

我是在FireFox 3上面測試的, IE不適用

1. 對這個link按滑鼠右鍵,點選”此鏈加入書籤”,

2. 用滑鼠在把他從我的最愛中拖到工具列上.

(或者,直接將上面 這個link 用滑鼠拖到工具列上,就會產生按鈕了. 在按鈕上按右鍵選”屬性”,就可修改按鈕名稱)

(或者,拉 n詞酷字典  這個link到工具列,按鈕名稱都不用修改)

之後,看到任何文章,想看某個中文詞的英文翻譯是甚麼

或者是某個英文詞的中文翻譯是甚麼

就用滑鼠選起來(點兩下,或者拖拉反白)

然後按那個工具列的按鈕(或者點書籤裡的收藏)

就會跳出那個字的解釋了! 方便多了吧!

我想創業,所以在兩年前我離開了IBM,開設了"威靈頓科技有限公司"。

做了一年半,做出了兩個網站,有一點點的使用者。也賣了一些東西,接觸了許多商業模式。

現在,我回到了"工作"與"上班族"這個活動中。不一樣的部分是,我加入了一家韓國網路公司,在台灣開設分公司,我是頭兩號的員工,精神上有"半創業"的影子。

因為在blog上有寫點東西,雖然只有一點,也讓一些想創業的網友找到了我,跟我討論網路創業的事情。

大抵都是想了解一些過來人的經驗,或者尋求合作的機會。基本上都在想要能夠成功的達到理想,成功的創業。

說實在的,因為有走了一陣子,也還持續在進行類似創業的活動,遇到有想創業的人,都是相當鼓勵,我也相當樂於分享的。只是,跟十幾位的想網路創業者溝通聊天後,我的確發現大家共同的問題,或者說是一般尚未創業者最多的共同瓶頸所在,不外乎底下幾點:

- 沒有經驗:除了有核心工作經驗之外,沒有其他跟"創"業有關的經驗。沒有擺過地攤(或網拍),沒有 寫過程式,沒有做過專案,沒有估過預算,沒有做過(創業)計畫,不瞭解財務,不知道怎樣與人協商,不知道怎麼敲合作夥伴(大公司)的門,沒帶過人,不知道如何定價,沒做過行銷A-Z規劃,沒有財務控管及規劃能力,不知道怎麼定位商品或服務,不知道怎麼找到前1000名用戶….。簡單講就是沒有做CEO的能力。

-沒有資金:自己沒有錢,也籌不到錢。基本上,要能先估出需要的創業資金,並準備十五個月的總資本。並且有能力找到第二筆資金來源,這才是上策。當然,有人會說,那這就不用創業了。事實上,我發現也是如此。沒有錢的人很多,資金卻是很多,兩者間的配對是一種奇妙的公式 – 錢都是跟著能賺錢的人跑,我定義能賺錢的人= 名氣+成功經驗+優秀團隊+好的biz model。 如果你沒有錢,錢也不來求你,大概就說明了百分之九十九你將不會成功的因素。

-沒有biz model:這當然是最重要的。雖然很多成功的案例,在初期也沒看到biz model,但這不代表沒有biz model是值得效法的一種創業心態。相反的,這是最不值得效法的一種創業模式,尤其如果你知道創業成功的平均機率在百分之一到三百分之一之間,如果我們創業都只是想增加分母的話(簡單講,就是標案去陪標的角色),就不要去care biz model。

- 沒有團隊:團隊是執行的重要核心。 沒有人,萬萬不能。如果你能成功,就會需要更多人。到時候再找人?恩,這樣也是為了增加分母,創造成功者的英雄態勢。

我的經驗告訴我,沒有辦法克服上述困難的人,就做不到:

- 帶領錢跟著你走

- 帶領人跟著你走

- 帶領夢想跟著你走

那自然沒有道理會成功創業。我當然也曾經是其中一個例子。因此我遇到這個工作機會,毫不猶豫的抓住回來充電,增加我欠缺的部分。

待續…………

寫下主觀的意見,也正在實驗中,可討論指教。

我的設定前提是,一個有機會長大的web 2.0網站,但是初期投資與maintain的成本盡量壓低。設定網站的流量目標是Alexa排名約一萬名,伺服器回應速度與頻寬回應不讓使用者感覺陽春,整體設備環境有企業級架構,雖非企業級水準。

台灣的頻寬是貴的。租用shared hosting對於一個有成長企圖心的網站限制太多,給的流量太小。租用dedicate server也是不小的花費,而且通常得簽一年約。採用國外hosting方案,因主機在國外,回應速度並不甚佳。

因此,可採用書房創業法。用ADSL+便宜硬體+無比的耐心與技術來開始。

 規劃與費用大概估算如下

1. 硬體

* 2台 Web Server:採用二線品牌準系統,我目前用技嘉的ST000,散熱效果看起來不錯,燒機程式讓loading飆到22,溫度也沒上升。

透過網路上拼湊,1G RAM,2顆160G ATA硬碟,加一張網路卡,一台一萬圓有找。這種機器有安靜,體積小的優勢,適合放在書房。

這兩台上面還應該跑 mail服務,DNS服務與一些Batch的工作,,並備份DB上的資料。

* 1台DB Server:同上規格,把ram加到2G,不須加網卡,一台一萬圓左右。

上面可用來作version control,備份web上的資料。

* 一個多WAN口的in-bound/out-bound 負載平衡路由器:大概一萬五左右。

用作ADSL撥接、防火牆、IDS、switch、頻寬分散器。

*選購:如果錢再多,買個UPS,風扇…等。

2. 軟體

* Linux,免費

* Apache/MySQL/Ruby On Rails/Bind/Postfix/…,免費

3. 頻寬

兩條Hinet 4M/1M企業ADSL固三IP方案,一個月約1,600~1,700,兩條約3,300/月。

或採用兩家不同的ADSL,試著做頻寬的備援。

 4. 人力

看你要發多少薪水,這部分自行估算。

5. 電費

一個月1000元為上限(每台電腦假設200W左右)。

 分兩階段進行

第一階段:一台電腦,一條ADSL,購買負載平衡器,頻寬1M。

開辦費用:兩萬五(電腦+負載平衡器)。

每月固定支出:兩千元(ADSL+電費)+薪資。

三個月後,第二階段:添購兩台電腦與新的ADSL,完整Web-Database架構,頻寬增為2M,並有效提升頻寬備援性。

費用:兩萬元。

每月固定支出:四千元,跟定期定額買基金一樣。

 優點陳述

1. 開辦費用低,每月支出低。

2. 主控性高,具有高彈性。

3. 完整架構,未來移轉機房容易。

4. 適當的頻寬,可應付較大流量需求,並可視情況擴充至4M。

5. 冬天來了,書房的三台Server可當暖器使用。

 需考慮

1. 技術維護管理能力,本部份需要多讀書,多操作。

2. ADSL是否能跑到1M,須先詢問,再行裝設。

你還沒開始作web 2.0網站?還是你永遠不會做?

我們是網路工程師結合起來的技術創業團隊平台,寫了幾個網站。透過這個創業平台,累積了創業經驗,我們也共享開發經驗與程式碼,省下開發時間,並希望下一個YouTube能由這裡創造出來。

 

我們想跟最棒的點子主人合作,透過創業條件篩選與嚴格的創業控管,我們將一起創造很棒,具獲利性的網路模式。

 

一如所有的創業故事,網路創業需要堅持,過程是艱辛的,我們開放這個web2.0技術創業平台,接受您的申請,我們會跟您討論出合作模式。

 

如果您是很棒的技術人才,請在這裡申請,加入我們技術創業團隊平台,一起與點子主人共同創業。

 

提供Web 2.0技術

我們能帶給你的就是技術能力。若您的想法有機會,我們就"投資時間"與您共同創業,針對目標市場,設計出網站。我們精通PHPRuby On RailsPerlJavaMySQLAjaxJavascriptCSSHTMLXML…web網路技術,以及最新的web2.0知識。我們就是您最好的技術創業伙伴。

 

創業合作模式

您與我們會以兩人(或更多)創業模式進行合作,內容不會洩露給他人。技術團隊會使用共同的辦公空間、程式碼、開發工具與主機、頻寬等。

 

專案內容

我們希望您的點子是可被數百萬人使用的點子,且只需透過網路就可行銷、使用。目前的目標市場是中國、美國與台灣。專案可以是一個完整的網站,一個小的widget,或是依附在主要的大型網站(如YouTube, Flickr, Facebook…)下的加值工具。

 

關於您-點子主人

您應該是個聰明又務實的創業家。你熟悉最新的美國、中國或台灣的網路發展模式、地區使用者的喜好與網路使用趨勢。針對點子,你知道如何處理困難、理出頭緒並努力執行。您能清楚且有效地與團隊溝通目標與商業模式。您能談出可執行的遠景,並擁有適當的時間與資金投入。

 

 

 

FAQ

1.      我白天在上班,只有晚上有時間,我適合網路創業嗎?

創業需要很大的投入,包括時間與精力。如果您週一到週五每天能擠出三~四個小時以上思考或執行相關任務,則您適合與我們聯繫。

 

2. 創業的資金哪裡來?您這邊會出嗎?

好的投資機會我們一定會想辦法參與。但我們不是創投,也不是有錢人。在想法建立的初期,點子主人必須準備十到數十萬不等的資金,用於計畫的必要支出,包括辦公室、人員與機器頻寬。

 

3. 我不在台北,可以合作嗎?

為了溝通順暢,創業團隊成員應該能越靠近越好。如果您不在台北,我們會試著幫您尋找當地的技術高手配合。如果您擅長使用skypemsnForumemail,且有強烈配合意願,我們可考慮遠距合作。

 

4. 跟您討論的商業機密是否有洩漏之虞?

成功的創業家並不怕因為與人討論,而被竊取想法。創業往往需要討論,尤其在初期的時候,才能讓想法更準確。但如果您有特殊的考量,可攜帶保密協議讓與談人員簽署之。

 

5. 你們是全職的嗎?

是的,我們投入了資金與時間,為的就是能在這個行業成功。

 

6. 請問這跟一般專案外包有何不同?

如果您能支付一般專案外包的費用,並接受一般專案的外包流程(需求、設計、驗收),我們也可與您配合。

透過本平台,我們想做的是"創業",而不是"接案",兩者在心態與實務上就有很大的差異。點子主人與我們合作,我們是創辦人的夥伴關係,並非接案時業主與外包商的關係。為了網站成功,我們會投入很多的時間與精力解決問題。同樣的,我們也會要求您投入相對應的時間與精力,完成您該做的項目。

 

7. 初期我投入的資金就是公司的資本額嗎?

不是,您投入的資金是屬於確定執行後就會花掉的部份,用來recover執行過程中的必要成本。

8. 後補