Php Localhost facebook登录不适用于较低级别的url

Php Localhost facebook登录不适用于较低级别的url,php,facebook,codeigniter,facebook-php-sdk,facebook-login,Php,Facebook,Codeigniter,Facebook Php Sdk,Facebook Login,提前感谢您的阅读 我已经使用facebook登录(php和javascript sdk方法)工作了几年,我在开发新的应用程序时遇到了一个特殊的问题 我在本地主机中有一个应用程序配置为虚拟目录,如下所示: http://localhost/myapp/ 在facebook上,我的应用程序的以下设置指向该url:应用程序域、facebook登录网站、facebook上的应用程序(https和http)和移动网络 当我执行登录过程并将重定向uri指向http://localhost/myapp/,工

提前感谢您的阅读

我已经使用facebook登录(php和javascript sdk方法)工作了几年,我在开发新的应用程序时遇到了一个特殊的问题

我在本地主机中有一个应用程序配置为虚拟目录,如下所示:

http://localhost/myapp/
在facebook上,我的应用程序的以下设置指向该url:应用程序域、facebook登录网站、facebook上的应用程序(https和http)和移动网络

当我执行登录过程并将重定向uri指向
http://localhost/myapp/
,工作正常,cookie已设置,我可以对graph api进行查询

当我尝试使用另一个重定向uri(如
http://localhost/myapp/user_controller/register
(将用户添加到数据库中)。虽然它位于facebook上配置的应用程序url内,但SDK会输出一条错误消息(OAutheException |必须使用活动访问令牌来查询当前用户的信息。|代码2500)

我发现,要暂时解决这个问题,我必须进入facebook应用程序页面:apps.facebook.com/myapp。每次我的访问令牌过期时,我都必须这样做,因为这个应用程序不打算放在facebook内,我不认为这是解决这个问题的最佳方法

我希望我们能一起找到一个很好的方法来解决这个问题,这个问题可以帮助未来的开发者

我使用CodeIgniter(我已经使用了大约一年)和Facebook PHP SDK(直接从github官方repo下载)作为CI库


再次感谢。

在身份验证过程中,您绝对不会遇到该错误


我敢肯定,您的代码中有一个错误,它无法将
代码交换为
../register
端点上的
访问令牌
,因此您最终使用了无效的
访问令牌

,在身份验证过程中,您绝不会遇到该错误


我很确定,您的代码中有一个错误,无法将
代码交换为
../register
端点上的
访问令牌,因此您最终使用了无效的
访问令牌

我应该指出,localhost的行为并不总是像所有网站。使用类似于
dev.jesusbet.org
的虚拟域,并将其添加到主机文件中,可能会得到更可靠的结果。你甚至不需要购买域名。谢谢你的回答。我尝试了域名为(www.myapp.com/myapp)的hosts文件,但结果是一样的。实际上,它只发生在重定向uri中。我应该指出,localhost的行为并不总是像所有网站一样。使用类似于
dev.jesusbet.org
的虚拟域,并将其添加到主机文件中,可能会得到更可靠的结果。你甚至不需要购买域名。谢谢你的回答。我尝试了域名为(www.myapp.com/myapp)的hosts文件,但结果是一样的。实际上,它只发生在重定向uri中。我使用PHPSDK($facebook->getUser())检查用户会话(如sdk的example.php)。您认为我必须手动进行访问令牌交换吗?。提前谢谢!我使用PHPSDK($facebook->getUser())检查用户会话(如sdk的example.php)。您认为我必须手动进行访问令牌交换吗?。提前谢谢!