我对 facebook 画布应用程序和 facebook 移动 Web 应用程序之间的区别有点困惑。这是我困惑的背景..
我有一个画布应用程序,让我们将其命名空间称为 myfbapp,我基本上可以从https://apps.facebook.com/myfbapp访问它在我登录 FB 后,它会在 Facebook 中打开。我在服务器端实现使用 java (apache / tomcat),为了简单起见,让我们说我的 Web 应用程序中只有一个 index.html 和一个 authenticationfilter.java(它实现了过滤器)。我的 index.html 中没有任何 Facebook 特定的 Javascript API(没有 FB.init() javascript 或类似的东西)或代码。每当用户访问我的画布应用程序时,我首先会收到对我的 Web 应用程序的请求,在该应用程序中我获得了 signed_request 、 oauth_token 、 FB 用户 ID 等,我可以将其用于我的内部身份验证、会话创建等。我对这个画布应用程序和一切正常。请注意,当用户访问此应用程序时,我从浏览器到我的应用程序服务器的请求具有 signed_request 、 user_id 等。
现在我想让这个应用程序也可以在移动设备上使用,我想,哦,我需要做的就是在 Facebook 的移动网络应用程序部分为同一个 myfbapp 添加这个应用程序的移动 URL。我这样做了,当我从我的 android 手机登录到 facebook 时,正如预期的那样,myfbapp 列在应用程序部分下,到目前为止一切都很好。当我点击应用程序时,问题就开始了。我在我的应用服务器上收到请求,但它不包含 signed_request 、 user_id 等。????? 我期待移动应用程序的工作方式与画布应用程序相同,但显然它没有,或者我做错了一些事情。
然后我开始在http://developers.facebook.com/docs/guides/mobile/web/#register阅读更多关于 Facebook 移动应用程序的内容,其中谈到了在 index.html 中添加各种 Facebook Javascript API(我从来没有做过类似的事情在我的画布应用程序中)然后我开始思考,可能是移动网络应用程序更像(或完全)像带有 FB 连接的常规网络应用程序,而不像画布应用程序(意味着它并没有真正在 Facebook 中加载),这是真的?