我正在尝试从网址传递一些变量到我的脸书应用程序,即使用像facebook想要的GET变量app_data
。
在某些时候,我已经停止获取$ _REQUEST的['signed_request']
部分。当我print_r($_REQUEST)
收到['doc']
,['user']
,['__utmz']
,['__utma']
和['session']
值,但未签名请求时:(< / p>
为什么会发生这种情况的任何想法?
答案 0 :(得分:4)
检查标签/画布网址与所需的完全相同。如果有重定向到另一个页面,则不会发送已签名的请求和其他值。您可以使用浏览器嗅探器进行检查,如果对页面的调用以300(301/302等)重定向进行响应,则需要更改为重定向到的内容。
示例:
https://example.com/可能需要https://www.example.com/(添加www。或删除www。取决于服务器的设置方式)
www.example.com/可能需要www.example.com/index.php(添加index.php或右页)。
检查您是否在网址中正确使用http://和https://,并且https://返回有效网页。
答案 1 :(得分:2)
我只能通过https://获取已签名的请求,我在http中完全没有请求。
目前FB上有一个错误,但还没有关于修复它的消息; http://developers.facebook.com/bugs/264505123580318?browse=search_4eb3ef23eb18d6649415729
编辑:
http://SITE.com重定向到http://www.SITE.com,因此我丢失了请求变量。
答案 2 :(得分:2)
有一个类似的问题,对我而言,它就像app id和app secret的不匹配一样简单!但是在Facebook开发人员的后端我注意到URL都需要有斜杠!
答案 3 :(得分:0)
如果您在https上访问此特定网站,某些浏览器会自动将您的请求重定向到https,因此如果您在Facebook上处于http模式,则有以下情况:
facebook要求你的应用程序的http版本,浏览器将这个facebook的请求重定向到https和POST数据,因此signer_request在这个过程中消失...
我在chrome 23中看到这个问题,如果你删除browsin数据(特别是取消授权内容许可证)app应该在http上运行