对于一个熟练的PHP程序员或者JAVA Guru,开发一个Facebook App可能还是很容易的,毕竟Demo文档非常齐全。然而,对于同样渴望开发优秀App的前端工程师,入门的门槛可能还是要高一些。好在Facebook为我们提供了强大的文档,更好在,我,Aw,也是一名关注Web前端技术的开发者,归纳总结了一些个人的经验与大家分享:)
- 如何上手
首先,我建议使用PHP的开发方式。没错,既然你是一个对服务器端编程一点都不懂的前端工程师,为什么要去花时间折腾文档和Demo较少的其他服务器端语言呢。我并不是PHP的“粉丝”,但范例最多、配置最快并且有Facebook官方支持的,似乎只有PHP了。
然后去官方看这些内容,非常详细(但不太容易找到):
《App所具备的一些要素》
《手把手叫你开发一个App》 - Callback到底是什么
Callback URL和ActionScript中的Call Back函数还是不太一样的。
CallBack URL说白了,就是你自己的服务器的一个URL,比如,我的awflasher.com/someurl,在这个URL上,输出一些“相关内容”给Facebook的Canvas来进行渲染。关于这一套流程,强烈建议看这篇(翻到下面),也是在Wiki里面藏的特别深很难找到的:这么重要的问题,居然藏在一个“Random Questions”里面。也可以看这张“图” - 官方提供的PHP client包存在的一些细节问题
我到现在也不知道官方提供了多少个PHP版本。似乎在Developer的App页面(简写为:apps.fb.com/dev和dev.fb.com)和Developers的Wiki页面有许多不同的范例。这其中有很多不规范的地方,例如:
把<?php echo getFriends();?>写为<?=getFriends()=?>之类的“简写”。这对于刚配置好的PHP环境实在是让人无从调试(因为你想不到官方提供的代码可能有问题)
- PHP开发中常遇到的问题
前端开发者的思路似乎更“粗糙”一些,我就有这个毛病。我在开发Facebook App的时候经常犯的错误就是把HTML和PHP内容混到一起了,例如:
<?php echo ‘<p>test’.$somevar.'</p>’;
<br>
?>
这样的写法乍一看没问题,但实际上中间的<br>是PHP根本看不懂的。在大多数配置下,这个错误根本看不到(不像Flash那样会有一个Compliler帮你报错),遇到这种情况,如果是少量HTML,就给它echo出来;否则,就将PHP标签结束再输出,例如:
<?php echo ‘<p>test’.$somevar.'</p>’;
?><br><?php … ?>
- FBML的设置
最关键的setFBML是把FBML显示到用户个人主页的函数。在使用这个函数的时候,一定要确认用户已经“同意改变profile box”,这是安装App的几条协议中的一条。如果你自己调试期间不希望被别人看到而当时没选中,那么很可能是导致你多次无法看到相关内容出现的主要原因。
+------------------+ | BROWSER | | | | +-------------+| | |Application || | |Canvas || | | || | | || | +-------------+| | | +---+----------+---+ | ^ 1) Browser makes | | 5) Facebook Renders FBML to request v | HTML +-----+----------+-----+ | FACEBOOK SERVER | +-------+ | | | | | | | | | +<-------------+ | | | | | | | | | | | | | | | | | | | 4) App Server 2) FB Server Calls | Returns FBML out to App Server---------+-----------+ | | ^ | | | 3) App calls FB API | | v | | +---------+------------+ | | | YOUR APP SERVER | | | | | | | | | | | | | | +------->+ 2.5) App server +-------------+ | composes API | | calls | | | | 3.5) App server | | generates FBML | | from API results +----------------------+
此文仅是抛砖引玉之文,因为也许我遇到的错误其他人又很容易地解决了,欢迎补充,我会保留链接。
应该是
php里面的short tag有时候会让人郁闷,如果把view和逻辑部分分开的话,short tag还是能够起到很好的作用
暂时还没想给fb玩应用
你应该多做点具体的code,恩。
now coding:(
相当于
画了一张图,补充一下
http://www.hainei.com/photo?r%5B0%5D=518433&r%5B1%5D=104383&fr=nf#comment-227507
学习API
谁知道为什么 iframe 在 severfbml 下的 request-form 在IE6下会有滚动条啊!
很好,不错哟