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 に答える