我正在尝试在我的网站上实施 FB 登录系统。我从最简单的测试登录页面开始,并希望从那里构建。
当我使用该$facebook->getLoginUrl()
方法时,每次单击生成的 URL 都会产生错误。
我注意到 getLoginUrl() 生成的 URL 不包含 URL 字符串中的 client_id 参数。文档中似乎没有任何关于必须在 getLoginUrl 调用中设置该 client_id 的内容。我假设它是从 Facebook 对象的属性中提取的。
这是我的代码及其输出。
require_once("php-sdk/facebook.php");
$config = array();
$config[‘appId’] = /* my app id string */;
$config[‘secret’] = /* my app secret string */;
$config[‘fileUpload’] = false; // optional
$facebook = new Facebook($config);
$login_url = $facebook->getLoginUrl(array("scope"=>"email"));
echo "<a href=\"$login_url\">Login with Facebook</a>";
显然 appID 和 secret 是实际值。我已经四次检查以确保它们是准确的。
生成的(编辑的)login_url 是:
https://www.facebook.com/dialog/oauth?redirect_uri=[mysite]&state=[state_str]&scope=email
它应该是:
https://www.facebook.com/dialog/oauth?client_id=[appID]&redirect_uri=[mysite]&state=[state_str]&scope=email
当我在浏览器中编辑 URL 以包含 client_id 时,它可以工作。显然我每次都可以自己手动创建正确的登录网址,但我想看看我使用 Facebook::getLoginUrl() 的方式是否有问题