几个月前我们建立了Facebook集成,直到本周注销停止工作时,一切都很好。
我们使用:
file_get_contents
)进行大多数事情对于注销,我们将用户从我们的应用程序中删除(包括删除cookie),然后使用javascript重定向到此网址:
"https://www.facebook.com/logout.php?access_token=". $FB_ACCESS_TOKEN . "&next=" . urlencode($loginUrl)
用于将用户从Facebook登录,然后将其带到我们的登录页面。
现在它让他们登录,并将他们带到
https://www.facebook.com/home.php
这是一个facebook错误,还是我使用的功能并非用于Apps?我猜我可以使用javascript API来实现这个功能,只是想检查一下我应该对我目前的做法做一些小改动。
编辑:
另一个想法(如果有人知道的话)可能是权限的工作方式发生了变化,我打算在用户登录时请求额外的权限?目前我只是要求:
email,publish_actions
答案 0 :(得分:1)
如果退出网址转到https://www.facebook.com/home.php,则表示访问令牌或下一个网址配置错误。
尝试将下一个网址设置为下一页(例如www.yourapp.com/logout.php),然后从那里重定向到您的应用程序。
答案 1 :(得分:0)
来自Facebook的SDK documentation使用Javascript注销:
FB.logout(function(response) {
// user is now logged out
})
FB.logout
会将用户从您的网站和Facebook中注销。
我建议使用回调重定向用户,而不是直接链接到facebook.com/logout.php
答案 2 :(得分:0)
事实证明我的access_token无效。我将它存储在varchar(150)字段中,但是现在更新的令牌比它长。
因此,当在登录页面上使用时,令牌是正确的,但是在后来的页面上(例如注销)它从数据库中检索并被截断,因此不能再被Facebook解密。
作为参考,对于其他任何人来说,它看起来不像最小长度 - 目前有255个工作,400仍然更安全,但是oauth规范允许任何长度,因此需要一个小文本字段才能完全安全
答案 3 :(得分:0)
这也发生在我身上,我终于意识到这是因为我改变了网站的位置。我确实将OAuth重定向网址更新到了新地方,但忘了在基本设置中更改网站地址....
并退出网址再次工作!
答案 4 :(得分:0)
您需要在Facebook App设置中拥有您要重定向到的页面的域
设置->基本->应用域
但是这些域都有规则...
应用程序域必须与Facebook Web Games URL(https),移动站点URL,Unity Binary URL,站点URL或安全页面选项卡URL的域匹配。
如果要使用2个不同的URL,则可以同时使用“站点URL”和“安全页面标签URL”
设置->基本->网站->网站网址
设置->基本->页面标签->安全页面标签URL