我有一个Flash应用程序正在使用Big Spaceship类(http://www.bigspaceship.com/blog/labs/bss-classes-flash-and-the-fb-graph/)来执行授权。在Facebook为Canvas推出POST之前,这工作正常。正如迁移文档中所建议的,我在应用程序设置中激活了Canvas的POST,并更改了将会话数据从使用$ _GET转换为$ _REQUEST的PHP,但是$ _REQUEST对象中不再有名为session的参数。 / p>
<?php
$session = '';
if( isset( $_REQUEST["session"] ) )
{
$session = urldecode( $_REQUEST["session"] );
if( strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE') )
{
$session = htmlspecialchars( $session );
}
}
?>
这应该是一个JSON字符串,其中包含来自Facebook的所有会话数据,Big Spaceship的OAuthBridge类需要这些数据。有谁知道为什么这个数据不再存在,或者旧的JSON属性名称是什么,所以我可以自己重建它?
答案 0 :(得分:1)
您想要的信息不在名为“session”的参数中,而是在“signed_request”参数中。你需要解码它,它包含一个json数组,会话密钥在oauth_token中。
这里有一个例子(向下滚动): http://developers.facebook.com/docs/guides/canvas/
此处记录的签名请求: http://developers.facebook.com/docs/authentication/signed_request/