如何解决Facebook重定向URI错误?PHP+MySQL登录开发遇问题
别慌,这个错误是Facebook开发者平台里最常见的配置问题之一,我帮你一步步搞定:
第一步:打开Facebook开发者控制台的应用基础设置
登录Facebook开发者平台,找到你创建的应用,进入应用详情页后,点击左侧菜单栏的 Settings -> Basic。第二步:添加域名到App Domains
在页面中找到App Domains字段,把你当前项目的域名填进去。比如你是本地开发,就填localhost(如果用了自定义端口,比如8080,要填localhost:8080);如果是线上环境,就填你的正式域名,比如yourdomain.com,包括所有子域名(比如blog.yourdomain.com)。第三步:配置Valid OAuth Redirect URIs(关键!很多人会漏这个)
往下滚动页面,找到Valid OAuth Redirect URIs这个选项,这里要填你PHP项目里处理Facebook登录回调的具体URL。比如你的回调页面是facebook-callback.php,本地环境就填http://localhost:8080/facebook-callback.php,线上环境就填https://yourdomain.com/facebook-callback.php。注意:这个URL必须和你代码里设置的回调地址完全一致,包括HTTP/HTTPS、端口、路径,不能有任何差异。
第四步:保存设置并等待生效
填完所有内容后,点击页面底部的Save Changes按钮。Facebook的配置有时候不会立刻生效,建议等待1-2分钟后再测试登录按钮。额外排查点
- 如果你是本地开发,不要用IP地址(比如
127.0.0.1)作为域名,Facebook不支持裸IP作为应用域名,改用localhost或者在hosts文件里配置自定义域名(比如local.yourdomain.com)。 - 检查你的Facebook登录按钮代码,确保按钮的
data-redirect-url属性(或者你PHP代码里设置的回调URL)和Valid OAuth Redirect URIs里填的完全一致。
- 如果你是本地开发,不要用IP地址(比如
内容的提问来源于stack exchange,提问作者D. Sean

