重定向Facebook的“offline_access”权限页面

时间:2010-01-28 09:04:52

标签: facebook servlets permissions response.redirect facebook-java-api

我试图在使用Facebook Java API编码的iFrame Facebook应用程序中获得用户对'offline_access'的许可。我知道在用户批准我的申请后我需要获得“无限期会话密钥”。目前,我可以完成我想要的,但是以一种非常尴尬的方式可能不正确。必须有更好的方法来做到这一点。任何想法/想法将不胜感激!!

我做了什么

在我的应用程序的servlet中,我检查用户当前是否具有“offline_access”权限。如果他们这样做,我会通过Permission.authorizeUrl(Permission.OFFLINE_ACCESS)获取网址。然后我调用response.redirect进入权限页面。我遇到的两个问题是:

  1. 重定向的权限页面显示在iFrame中。因此,Facebook书籍主菜单栏等显示两次。即看起来像一个应用程序嵌入在另一个应用程序中
  2. 一旦重定向,用户将被“卡在”权限页面上。除非用户手动返回我的应用中的页面,否则我将无法获得“无限期会话密钥”(通过调用client.getCacheSessionKey)。
  3. 可能的解决方法??

    • 有没有办法在新窗口中打开/重定向到权限页面?这样也许我可以在我的servlet中有一个线程来检查重定向后是否设置了权限。然后,我可以获得“无限期会话密钥”并将其存储在某处?
    • 设置权限后,有没有办法设置Facebook的网址? (很像pre-auth和post-auth URL设置?)或者在获得权限页面后以某种方式控制?
    • 设置我的应用程序的任何其他方法可能?作为一个新手,我可能完全弄错了这个想法......

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用fb:promot-permission中的XFBML代码?这似乎是获得许可的最简单方法,XFBML相当容易设置。