我有点困惑于Facebook画布应用和Facebook移动Web应用之间的区别。下面是我的疑惑背景。
我有一个画布应用,我们称其命名空间为myfbapp,基本上可以从https://apps.facebook.com/myfbapp访问它,在登录到FB后,它会在Facebook中打开。我使用Java(Apache / Tomcat)进行服务器端实现,为简单起见,让我们说我只有一个index.html和一个authenticationfilter.java(实现Filter)在我的Web应用程序中。我没有任何Facebook特定的Javascript API(没有FB.init()javascript或类似的代码)或者在我的index.html中的代码。每当用户访问我的画布应用时,我首先从我的Web应用程序获得请求,其中我获取signed_request,oauth_token,FB用户ID等,这些对于我的内部身份验证、会话创建等都很有用。我对这个画布应用没有任何问题,一切都很顺利。请注意,当用户访问此应用时,从浏览器到我的应用服务器的请求具有signed_request,user_id等信息。
现在我想让这个应用程序在移动设备上可用,我想,哦,我所需要做的就是在Facebook的移动Web应用程序部分中添加此应用程序的移动URL,为同一个myfbapp。我已经这样做了,当我从我的Android手机登录Facebook时,myfbapp在应用程序部分下列出,到目前为止都很好。问题开始于我点击应用程序时。我收到了来自我的应用程序服务器的请求,但它不包含signed_request、user_id等等……???我原以为移动应用程序会像画布应用程序一样工作,但显然并不是这样,或者我做错了什么。
然后我开始阅读更多有关Facebook移动应用程序的信息http://developers.facebook.com/docs/guides/mobile/web/#register,其中讲述了在index.html中添加各种Facebook Javascript API(我在画布应用程序中从未这样做过),然后我开始思考,也许移动Web应用程序更像是带有FB连接的常规Web应用程序,而不像画布应用程序(意味着它实际上并没有在Facebook中加载),这是真的吗?
我有一个画布应用,我们称其命名空间为myfbapp,基本上可以从https://apps.facebook.com/myfbapp访问它,在登录到FB后,它会在Facebook中打开。我使用Java(Apache / Tomcat)进行服务器端实现,为简单起见,让我们说我只有一个index.html和一个authenticationfilter.java(实现Filter)在我的Web应用程序中。我没有任何Facebook特定的Javascript API(没有FB.init()javascript或类似的代码)或者在我的index.html中的代码。每当用户访问我的画布应用时,我首先从我的Web应用程序获得请求,其中我获取signed_request,oauth_token,FB用户ID等,这些对于我的内部身份验证、会话创建等都很有用。我对这个画布应用没有任何问题,一切都很顺利。请注意,当用户访问此应用时,从浏览器到我的应用服务器的请求具有signed_request,user_id等信息。
现在我想让这个应用程序在移动设备上可用,我想,哦,我所需要做的就是在Facebook的移动Web应用程序部分中添加此应用程序的移动URL,为同一个myfbapp。我已经这样做了,当我从我的Android手机登录Facebook时,myfbapp在应用程序部分下列出,到目前为止都很好。问题开始于我点击应用程序时。我收到了来自我的应用程序服务器的请求,但它不包含signed_request、user_id等等……???我原以为移动应用程序会像画布应用程序一样工作,但显然并不是这样,或者我做错了什么。
然后我开始阅读更多有关Facebook移动应用程序的信息http://developers.facebook.com/docs/guides/mobile/web/#register,其中讲述了在index.html中添加各种Facebook Javascript API(我在画布应用程序中从未这样做过),然后我开始思考,也许移动Web应用程序更像是带有FB连接的常规Web应用程序,而不像画布应用程序(意味着它实际上并没有在Facebook中加载),这是真的吗?