从rfacebook 到facebooker

     最近在钻研Facebook + Ruby on Rails的application,坦白说没有当初php那么顺畅。可能因为Rails本身的框架涵盖的东西太多了吧,反而PHP这样最简单直接,反而容易上手。Rfacebook和Facebooker都是Facebook Client Library based on Ruby on Rails,一开始选择前者也没有什么特别的理由,谁让人家就是Using Ruby on Rails with Facebook Platform上的首选呢。
     总体来说Rfacebook就是用Ruby on Rails来解析Facebook请求协议的解析包,如同PHP Client一样,是比较Straight地解决办法。由于有了PHP上的经验,Rfacebook的安装总体来说还是很顺利的,大概前后花了两个晚上Hello World就出来了,直接Scaffold了一个Object 就可以show在facebook上了。当然问题也就接踵而来。
     遇到的最主要问题就是路由。一方面Facebook Application是以apps.facebook.com/xiustodolist作为Context Root来解析的。另外一方面Ruby on Rails有自己的路由解析策略,例如Scaffold出来的new.html.erb中的<%=link_to ‘Back’, users_path %>都是以apps.facebook.com作为根来作路由解析的。所以已开始所有的Link都完全不对,完全没有办法点击。Google了一下,原来是Rails2.0 named routes在作怪。当然也有解决的办法,不过文中更加推荐了Facebooker地解决办法,这也是我第一次听说了Facebooker.
     之后我访问了Rfacebook的主页,看到作者推荐Facebooker的留言,还说如果Facebooker1.0 release,他就要停掉Rfacebook,嗯,还有什么理由不试试看Facebooker呢,嗯,gogogo.
     Facebooker的安装之路远没有Rfacebook来的顺利。主要遇到了两个问题。
1 Facebooker 已经从SVN搬迁到了Git上。最可恨的是SVN上最后的版本还有编译错误。网上比较著名几篇Tutorial都继承了这个错误,让初学者完全摸不到头脑。解决办法,去Git自己下载最新的版本手动安装。
2 Facebooker会按照Rails 2.0的named routes去解析request,所以面对Facebook的请求,他会最后Forward给index.fbml.erb而不是index.html.erb,不仔细看教程就会错过了,例如我。。
3 默认的respond_to没有fbml的Accept_type,所以如果你希望继续使用respond_to这么有趣的东西的话,就需要在/config/initializers/mime_types.rb中添加text/html = fbml 的mapping.
     昨天刚刚完成了Facebooker的安装,总体来说非常的Rails 2.0 oriented.路由问题也都没有出现,可以放心的使用。
 
参考:Rfacebook

 

“Xiu’s to do list” 0.1RC (my first application of facebook )

前言
很早就想做facebook的应用了,但是苦于需要host,才一直没有动手.
直到前几个月花了几十块钱买了一个虚拟主机,这件事才被提上了议题,最后在six的帮助下才算是安了家.
 
创意
关于application的创意实在是一场的匮乏,最后考虑到自己是一个超级忘性很大的人,所以还是决定作To Do List,能够记录自己要做的事情,最好系统还能按时提醒.在后期考虑到facebook互动的特性,还增加了With Friends的Feature,可以记录都和那些朋友Schedule了Item.基本的创意的就是这么简单了.
 
技术
总的来说第一个application是对facebook平台技术的一个学习,包括它本身的技术FBML,FQL,以及平台开放模式,当然也希望探究一下facebook为何会如此的成功.
FQL
没有太多的探究,基本是Facebook基于用户私密性的一个信息获取解决方案.
FBML
还是属于比较稚嫩的一个标签语言,有一些非常强大,例如multi_friend_selector,有一些非常傻,例如fb:editor-date,,,还有一些会冲突,例如fb:dialog和fb:form…..
交互点
这是我觉得facebook在用户体验方面最成功的地方,也是这次我试验的最多的一个地方.主要包括了profile action ( profile页面中可以扩展的小窗口), profile box(profile页面中照片下面的小对话框),feed history(profile页面中右侧的历史纪录,也会在home中出现),notification (可以在用户登陆的时候看到的提示信息),request(facebook的站内邮件),email(只有注册了你的application才能用).通过这些功能,各个application可以紧密地和facebook这个平台整合在一起,完全就像facebook本身的一部分一样,超赞阿.
 
目前实现的功能
1To Do Item的查询,新增,删除
2To Do Item的完成
3To Do Item中添加选择好友的功能,可以在列表中察看
4邀请好友
5用户注册
6To Do Item的定时提醒
 
到目前为止的回顾,心得和总结
1网站风格
Facebook整体的网站风格我很喜欢,为了能让To Do List保持风格一致也着实让我费了一番功夫,主要是一些FBML的冲突导致不得不自己写控件,另外就是facebook本身没有很多标准的CSS风格.
2关于交互点
facebook的用户体验震得很不错,而其中很大的一部分就是我上面提到的各个交互点起到的作用(个人理解).每天我登陆facebook(/home.php),就会看到朋友们留下的Feeds.查看自己的Profile(/profile.php),就会看到我自己的box,action.各个application通过这些功能编制出整个facebook的用户体验,完全融入其中.创意在很赞.
3吸引用户
说实话Xiu’s To Do List还是挺失败的,到现在也就每周一个,两个新用户的样子,这还是我很无耻的到处宣扬,然后在facebook上拚命的散发Invitation的结果.不过想想也是,因为我自己用的还是igoogle的to do list, google的calander, MS的outlook都是功能超级强大,要想作出亮点我的To Do List还有很多东西要做.当然我很古值得觉得我的With Friends功能还是很有交互性的,下一步说不定会做一个Send Notification to Friends的功能.
不过话说回来,通过facebook我深刻的体会到创意远大于技术的观点.现在看看我自己添加的几个aplication,其中的技术点基本上我都可以做到,没有什么特别之处,心理测试啊,地理知识问答阿.关键还是在内容和创意上,据说Friends For Sale一天有1000万的访问量,我最近自己玩Owned也是不亦乐乎,不禁让我非常的汗颜,皑皑.
当然其中还涉及另外一个问题,如何推销自己.我有的时候会想.就算我的东西真的有亮点,就真的能吸引很多人么?也许不,因为他们根本不知道啊.该如何推销呢?难道就只能通过朋友们的互相散播么,,,,似乎国内的同学并不乐于这些application更加不要说传播了,这也只能是我的一个学习课题了.
4关于广告
做网站,要赚钱,当然要做广告.看国外的一些application基本上的ads都做得很好,,,,再看看自己,如何做,怎么操作基本没有一点思路.只有热情是没有办法做好事情的,这也是我需要学习的地方.
5关于PHP开发
这次的另外一个目的也是学习PHP开发,其中当然也有一些感受.PHP开发没有什么框架,这让我已开始非常难以适应.参考了facebook demo的例子以后,粗粗的划分成了data.php, display.php,略微有了点开发的感觉。
其中最大的感慨是动态语言对于集合的操作非常的方便,数据库直接映射到Hash,可以动态的增加属性,数组元素。虽然没有O/R Mapping的组件帮忙,还是非常的方便。
 
 
 

 

“Favorite Links” Kick Off (my second application of facebook )

xiu’s to do list, 遭遇惨败,至今也没有谁用,抑郁了...希望有空写一下总结.
不过我热爱facebook的心仍然不改,收拾心情,于是我的第二个facebook application — favorite links出发了.
 
Favorite Link
初衷
基本的想法就是在网上找一个可以存放收藏夹的地方.
然后借鉴facebook的互动性可以让朋友之间通过public 或者 private来share 好的网站地址.
或者给个价钱,或者评议个星之类的.
 
技术架构
Facebook + RFacebook + Heroku
RFacebook是基于Ruby on Rails的Facebook客户端.
Heroku是基于Ruby on Rails的免费虚拟主机,更加提供了非常cool的浏览器编辑器,很赞.
一直想学习一下Ruby on Rails, 又正好申请到了Heroku得主机,自然要合在一起玩一把.
 
目前解决的问题:
1)RFacebook , Rails 2.0
要兼容Rails2.0, RFacebook需要修改config/environment.rb的两处地方
config.action_controller.session_store = :active_record_store
config.action_controller.allow_forgery_protection = false
 
当然别忘了按照提示创建session table.
 
2)RFacebook的配置
主要遇到的问题是
facebook.yml中的两处配置
canvas_path: /favoritelink/
callback_path: /
这两处都是相对路径,之前写了全路经,就看到facebook, heroku之间一直来回forward.
 
 
 

 

Facebook Application “To Do List ” Schedule

Round 1(Finished)
Tech Learning
 Find the bugs for the integration of the fb:editor, fb:dialog
 
Round 2(Finished)
To Do List ( CRD )
Invitation
Finished Items
 
Round 3

Updating the user Profile action(Finished)

Updating the user Profile box(Finished)
Notification(Finished)
Feed History(Finished)
Validation   
Installation(Finished)
TODO: Feed Limited, nofification effectd
 
Round 4
With Friends
Cron job, Timing 
Notify the user, email or notification
 
Round 5

Custimzed Timing

 

无觅相关文章插件,快速提升流量