Php Facebook$signed_请求[';用户id';]未提取用户id

Php Facebook$signed_请求[';用户id';]未提取用户id,php,facebook,Php,Facebook,我环顾四周,所以如果这是一个重新张贴,发送给我在正确的方向,但我一直得到一个单一的随机字符,当我运行这个。我做错了什么?我只想输出用户ID <?php require 'facebook.php'; $facebook = new Facebook( array( 'appId' => "XXXXXXXXXXXXXXXXXXX", 'secret' => "XXXXXXXXXXXXXXXXXXXXXXX", 'cookie' => tru

我环顾四周,所以如果这是一个重新张贴,发送给我在正确的方向,但我一直得到一个单一的随机字符,当我运行这个。我做错了什么?我只想输出用户ID

 <?php require 'facebook.php';
  $facebook = new Facebook( array( 
   'appId'   => "XXXXXXXXXXXXXXXXXXX",
   'secret'  => "XXXXXXXXXXXXXXXXXXXXXXX",
   'cookie'  => true
 ) );

 try {
  $me = $facebook->api('/me');
 } catch ( FacebookApiException $e ) {
  error_log( $e );
  }


 $signed_request = $_REQUEST["signed_request"];
 $user_id = $signed_request['user_id'];
 echo $user_id;


 $signed_request = $facebook->getSignedRequest();
 $liked = $signed_request['page']['liked'];

 ?>


另外,$signed_请求['page']['liked']也可以正常工作。

这是代码的复制/粘贴吗? 如果是的话

将不起作用,它不是正确的签名请求,并且它将不可读,因为您尚未解密响应(在PHP SDK中,在“getSignedRequest()”函数中解密是自动的)

您拥有的页面代码是正确的,因此要获取当前用户ID,假设用户已接受应用程序的“身份验证”对话框,代码应为

 $signed_request = $facebook->getSignedRequest();
 $user_id = $signed_request['user_id'];
 echo $user_id

这是在画布上工作的,我很愚蠢,没有要求授权对话框的权限。有没有办法使用页面选项卡上的“身份验证”对话框?是的,文档中有一个例子
 $signed_request = $facebook->getSignedRequest();
 $user_id = $signed_request['user_id'];
 echo $user_id