0

我遵循了服务器端应用程序登录的示例,但由于某种原因$_REQUEST['code']总是空白。所以我最终陷入了我已经同意的对话/oauth的无限循环重定向,因此是无限循环。有谁知道可能是什么问题?

如果我回$_REQUEST显出数组,我就可以在其中包含“signed_request”和“PHPSESSID”了。提前致谢。

$code = $_REQUEST['code'];
if (empty($code))
{
    // Create the CSRF protection
    $_SESSION['state'] = md5(uniqid(rand(), true));

    // Set the permissions to request for
    // additionally from the standard user information
    // refer to documentation on other permissions
    //$request_permissions = "email,user_birthday";

    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" . $options['appId'] . "&redirect_uri=" . $redirect_uri . "&state=" . $_SESSION['state'];
    echo "<script>top.location.href='" . $dialog_url . "'</script>";
}

编辑:也只是一个注释:$code 填充在 url 中,只是不断刷新......我看到很多人抱怨这个,但那是一年多以前,因为我已经尝试了他们的所有步骤以及查看SDK 看看里面有什么可以帮助我,到目前为止似乎没有任何类似的事情......

4

1 回答 1

0

我注意到的第一件事:您生成的变量$dialog_url格式不正确。

尝试这个:

$dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' . $options['appId'] . '&redirect_uri=' . urlencode($redirect_uri) . '&state=' . $_SESSION['state'] . '&scope=' . $request_permissions;

这也更像是Facebook Login for Server-side Apps页面所说的......

于 2013-01-25T19:59:24.047 回答