Facebook画布应用与Facebook移动Web应用的区别

7
我有点困惑于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中加载),这是真的吗?
2个回答

12
在移动版Facebook上,您无法查看任何自定义页面/选项卡。他们显然正在解决这个问题。
因此,它将与画布应用程序不同。您的移动应用程序将是完全独立的站点和页面,而不是在Facebook上的iFrame中。

1

最近我发现了Facebook Canvas / Page Tabs在移动设备上的一些行为。也许这有助于更好地理解Facebook在移动环境中的行为。


移动浏览器

访问应用程序网址

示例URL http://apps.facebook.com/myapp/

重定向到配置的移动网站,位于设置 > 网站 > 移动站点URL,并添加附加参数/?ref=web_canvas&code=<signed_request_code_field>

关于signed_request代码字段

OAuth代码,可以通过随后的服务器端请求交换为有效的用户访问令牌

访问应用中心

无法通过移动浏览器访问Facebook应用中心。

访问页面选项卡

示例URL http://facebook.com/a_facebook_page/custom_page_tab_url

自定义页面选项卡在移动浏览器中不可见。

Facebook开放图谱搜索

搜索myapp返回指向Facebook画布的链接。

与“通过移动浏览器访问应用程序网址”的行为相同


移动版 Facebook 客户端

访问应用程序 URL

无法直接访问此 URL。

访问应用中心

无法访问 Facebook 应用中心。

访问页面选项卡

示例 URL http://facebook.com/a_facebook_page/custom_page_tab_url

在移动版 Facebook 客户端中无法看到自定义页面选项卡。

Facebook 开放图谱搜索

它显示此应用与此设备不兼容。

您需要注册 iOS/Android 应用并将用户发送到该应用以解决此错误。如果您将该链接添加到应用的 Facebook 描述中,则可能会帮助用户。然后该链接应该在那里可见。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接