我遵循Login for server-side apps的示例,但出于某种原因,$_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填充在网址中,只是保持清爽...我看到很多人抱怨这个但是它已经超过一年了,因为我我们已经尝试了所有的步骤以及查看SDK,看看那里有什么可以帮助我,到目前为止似乎没有做类似的...
答案 0 :(得分: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页面说的......