1

我已经设置了我的 FB 应用程序,使其具有移动 Web URL 组件。我从测试中注意到,每当我在移动设备上导航到我的应用程序的画布 URL 时,Facebook 都会自动将移动设备重定向到定义的移动 Web URL。

如果我从桌面执行相同操作,则画布 URL 会加载到浏览器中。换句话说,如果 FB 在导航到应用程序的画布 URL 时检测到移动设备,它将立即重定向到定义的移动 Web URL,而不加载画布 URL 内容。

这样做的问题是,当画布 URL 加载时,FB 会向它传递一个 signed_request 表单参数。然而,当它重定向到移动 Web URL 时,它不会。

我在检查网络嗅探器时注意到,当在移动设备上 Facebook 将 app.facebook.com URL 重定向到 m.facebook.com 时,我认为签名请求可能在此过程中丢失了。但是当检查对画布 URL 的第一次调用时,那里也没有 signed_request。

就像 Facebook 只在处理画布 URL 时提供 signed_request 一样,在移动设备的情况下永远不会。

有没有人对如何获得签名请求有任何见解或建议?目前我唯一的想法是强迫用户在重定向后立即在移动设备上授权应用程序,但如果可能的话我宁愿不这样做(我不喜欢门控技术)

干杯

- - 编辑 - -

关闭 - 请参阅我的答案。

4

2 回答 2

0

从那以后,我得出的结论是,移动 URL 不会收到签名请求,并且要获得相同类型的数据,需要让用户完成 FB Auth 流程。结束问题。

于 2012-07-03T17:30:26.727 回答
0

如果此人已授权您的应用程序,则应在查询字符串中向您的移动应用程序传递一个“代码”。您的后端可以将该代码交换为 access_token,然后您可以通过请求 https://graph.facebook.com/me?access_token=[从代码交换中检索到的令牌] 来使用它来获取当前用户信息。这将允许您自动登录当前用户。

但是,是的,如果当前用户未通过身份验证,您将不会收到当前用户的国家、地区和年龄等信息。这是目前移动网络应用程序的限制。

于 2013-08-16T18:05:17.407 回答