注册
 找回密码
 注册
江西广告网
查看: 527|回复: 0
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-3-17 08:14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  当你想用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.     原来完成这功能的方法FacebookRestClient.notifications_sendRequest()已经不再使用了,如果你不慎调用将会得到一个异常。     8.用户档案信息显示页面     要想将一些信息放入用户的档案信息页面,使用FacebookRestClient.profile_setFBML()。这个方法复写了你在应用里设定的默认信息页面。当你设定了用户的个人档案的FBML页面,这些页面被流量时,facebook会缓存这些页面信息而不会即时更新。这样就使得用户信息的动态更新会麻烦一些。当一个事件触发用户信息改变时,你需要重新调用profile_setFBML()更新这些信息。幸运的时既然你已经有一个登陆的客户端可以做任何事情,所以这个客户端也可以任意设置你的用户资料的数据项。     好了,就这些。我还是一个facebookapi的初学者,如果你是专家,请留言斧正。  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表