我已经设置了我的FB应用,因此它有一个Mobile Web URL组件。我从测试中注意到,每当我在移动设备上导航到我的应用程序的画布URL时,Facebook会自动将移动设备重定向到定义的移动Web URL。
如果我在桌面上执行相同操作,则会将画布URL加载到浏览器中。换句话说,如果FB在导航到应用程序的画布URL时检测到移动设备,它将立即重定向到已定义的移动Web URL,而不会加载画布URL内容。
这个问题是当画布URL加载时,FB会向其传递一个signed_request表单参数。然而,当它重定向到移动Web URL时却没有。
我在检查网络嗅探器时注意到,当在移动设备上Facebook将app.facebook.com网址重定向到m.facebook.com时,并认为sign_request可能在此过程中丢失了。但是当检查第一次调用画布URL时,那里也没有signed_request。
就像Facebook在处理画布URL时只提供signed_request,在移动设备的情况下永远不会。
有没有人对如何获取signed_request有任何见解或建议?我目前唯一想到的是强制用户在重定向后立即在移动设备上授权应用程序,但如果可能的话,我宁愿不这样做(我不喜欢门控技术)
干杯
利
---编辑---
结束 - 看我的回答。
答案 0 :(得分:0)
我已经得出结论,移动URL不接收signed_request,并且要获得相同类型的数据,需要用户通过FB Auth过程。结束这个问题。
答案 1 :(得分:0)
如果此人已授权您的应用,则应在查询字符串中传递“代码”。您的后端可以为access_token交换该代码,然后您可以通过请求从代码交换中检索https://graph.facebook.com/me?access_token=[token来使用它来获取当前用户信息。这将允许您自动登录当前用户。
但是,如果未经过身份验证,您不会收到当前用户的国家/地区,区域设置和年龄等信息。这是目前移动网络应用的限制。