0

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

我做了什么

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

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

可能的解决方法?

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

1 回答 1

1

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

于 2010-01-28T09:53:12.143 回答