2

我创建了一个运行良好的应用程序 - 但不能在移动设备上运行。用户登录我的应用程序后,我陷入了一个循环, $data["user_id"] 似乎是空的。这是我正在使用的代码片段:

    $canvas_page = 'https://m.facebook.com/apps/'.$app_id;

 $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
   . $app_id . "&redirect_uri=" . urlencode($canvas_page)
   . "&scope=user_birthday";

    $signed_request = $_REQUEST["signed_request"];

    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), 
    true);

  if (empty($data["user_id"])) {
    echo("<script> top.location.href='" . $auth_url . "'</script>");
    }

有人知道为什么吗?

4

1 回答 1

0

我不完全确定它signed_request是否已发布到移动应用程序,它未列在接收它的应用程序类型中:
https
://developers.facebook.com/docs/howtos/login/signed-request/ 但是,如根据该文档,您的 if 语句可能应该寻找$_REQUEST自身的存在,而不是专门寻找user_id.

于 2012-11-02T17:39:12.780 回答