使用java开发facebook网站应用程序

当你想用Java写一Facebook的应用?你把在facebook的帐号中加入的程序开发模块,下载了相关的java类库。忽然你发现不得不停下来:开发相关的入门介绍,样例代码和文档说明在哪儿?这样的挫败感令人愤怒,而最终导致你不得不放弃。

但愿有人会尽快写一个不错的应用Java 开发facebook应用的入门指南。也许只需要你给我些好吃的巧克力,我们可以写些相关的介绍文档,老实说我们的确也解决了不少相关的问题。这里有一些技巧帮助你使用java开始建立自己的 facebook应用。 这并不是一个完整的入门指南,但他可以帮你在着手做时少走些弯路。

八个注意事项辅助你构建Java/facebook应用

1.为了你的幸福和健康,建议你使用5.0或更高的JDK开发包。

2.不用看facebook java开发包中的列子,因为那些例子是针对java桌面应用程序的。而通常你是需要写一个web应用,这两种应用的区别还是很大的。一开始,你需要一个web应用服务容器,你可以能会选择tomcat,但我不会,这里面有另一个故事,我会找个合适的时间再告诉你。Facebook的网络应用有一个不常见的调用模式。大多数你的页面会被facebook调用。用户请求一个facebook的页面,页面中的主要内容会从你的服务器中返回给用户。你体统的内容会融合到facebook的页面里返回给用户。大多数情况下这些流程不需要你的干预就能很好的执行。但需要注意的是你服务器端产生的页面中的javascript是不能执行的,这就意味着普通的ajax不再在facebook中应用。如果你需要使用AJAX的技术实现facebook 提供的 mock-ajax不能完成的功能,则需要通过facebook的页面跳到你服务配器上的一般页面。

3.配置你在facebook上的应用程序

不要忘了填写facebook应用的配置文件,你应该设置: 应用程序的回调网址。

应用程序的名字- 这个名字用来表示标识在facebook的页面。(这些页面可以是用iframe嵌入到facebook的导航页,也可以是用FBML标记的页面)。一但设定,比如http://apps.facebook.com/yourappname/yourpagename 这个页面就会从facebok产生一个请求到你的服务器 。对于新用户来说,这就是一个你的应用程序的欢迎页面,邀请用户来使用传播你的这个应用。

4.用facebookrestclient

最重要的阶级,在客户端类库中最重要的类是facebookrestclient。这个类中包含一系列调用facebook服务端的方法,并涵盖了大部分你需要的功能。可惜facebookrestclient是不是个架构清晰的类。几乎所有的请求,需要一个facebookrestclient 这是建造一个会话密钥 。用户登陆后可以从CGI变量中获得会话的密钥。(参考 FacebookParam.SESSION_KEY.toString())没有登陆的用户需要引导到一个登陆页面。 试试以下方法:

// 创建一个无会话状态的FacebookRestClient

FacebookRestClient client = new FacebookRestClient ( 你的api密钥 , 你的加密密钥 ) ;

String token = client.authcreateToken () ;

String loginURL = “http : //www.facebook.com/login.php?v=1.0&apikey=&”+ YOUR APIKEY +“&auth_token =”+ token ;

// 这里转向到登陆页面

// 登陆后就会返回会话key

FacebookRestClient.auth_getSession() 以我的经验基本没用。他的作用是把一个无会话的client变成一个有会话的。我发现从CGI变量中获取会话要比试用这个方法简单。

当有一个会话key的FacebookRestClient,你可以调用这个类提供的各种facebook编辑方法。这些方法可以很方便与facebook进行交换操作。但不幸的事这些方法返回的是未经处理的XML文档,这些文档后续的处理会比较麻烦。

比如 friends_get()返回的是

<document>

<friendsgetresponse>

<uid>1</uid>

<uid>2</uid>

<uid>3</uid>

</friendsgetresponse>

</document>

你也许想封装一些提取信息的方法,例如调用friends_get(),试试这个

Document d = client . friends_get () ;

NodeList userIDNodes = d . getElementsByTagName ( " uid " ) ;

int fcount = ids . getLength () ;

List < Integer > friends = new ArrayList < Integer > () ;

for ( int i = 0 ; i < fcount ; i ++ )

{ Node node = userIDNodes . item ( i ) ;

String idText = node . getTextContent () ;

Integer id = Integer . valueOf ( idText ) ;

friends . add ( id ) ; }

这样friends的列表里就填充好了用户的id。

5.servlet返回局部页面

当你生产在facebook中的页面时,比如这样的一个地址http://apps.facebook.com/yourappname/yourpagename,你必须返回的一个HTML或FBML标记的页面片段,而不是一个完全的HTML页面。

6.学习FBML 。

FBML这是一套特有的facebook标签。试用标签可以让你很方便的完成很多功能(比如显示用户的名称和图片)。

7.用户邀请好友

你想完成病毒式推广的邀请好友?facebook最近修改了他的api(2007.11)。新版本主要改进了一个特殊的form,fb:form。具体的说明在这里:http://wiki.developers.facebook.com/index.php/Fb:request-form。

原来完成这功能的方法FacebookRestClient.notifications_sendRequest()已经不再使用了,如果你不慎调用将会得到一个异常。

8.用户档案信息显示页面

要想将一些信息放入用户的档案信息页面,使用FacebookRestClient.profile_setFBML()。这个方法复写了你在应用里设定的默认信息页面。当你设定了用户的个人档案的FBML页面,这些页面被流量时,facebook会缓存这些页面信息而不会即时更新。这样就使得用户信息的动态更新会麻烦一些。当一个事件触发用户信息改变时,你需要重新调用profile_setFBML()更新这些信息。幸运的时既然你已经有一个登陆的客户端可以做任何事情,所以这个客户端也可以任意设置你的用户资料的数据项。

好了,就这些.我还是一个facebookapi的初学者,如果你是专家,请留言斧正。

祝福你们在构建web2.0的路上一路顺风。

原文作者:Daniel 译者:kwyjibo

原文链接:Tips for writing FaceBook applications in Java (来自:译言 kwyjibo编译)

AddThis Social Bookmark Button

相关文档(Relevant Entries)
JNI完全手册
JBuilder9制作EXE文件
如何在Java中调用dll
JNI调用固有方法
Cache Your Data JDBC vs ADO NET
IntelliJ IDEA 5.0 新特性
用JavaHelp系统开发和交付更好的文档
《Eclipse集成开发工具》
WoW Powerleveling
Posted on January 19, 2008 12:18 AM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/6908

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(URL):
评论(Add your comments):

相关内容
广告计划