我正在使用debug.js
并在执行FB.login
时收到以下消息:
您正在覆盖当前的访问令牌,这意味着其他应用程序是 期待不同的访问令牌,你可能会破坏事物。 请考虑将access_token直接传递给API参数 而不是覆盖全局设置。
任何线索?
答案 0 :(得分:4)
我解决了这个问题,问题是我要求获得该应用未获批准的许可,并且没有使用与该应用相关联的FB帐户。通过将有问题的用户添加为测试用户,问题得以解决。令人遗憾的是,Facebook返回的错误在这种情况下是完全无用的。希望这有帮助!
答案 1 :(得分:3)
可能是因为您先调用FB.getLoginStatus,然后再调用FB.login。该错误仅表示您第一次调用.getLoginStatus时收到访问令牌,然后在调用.login时将其覆盖。
您可以通过删除.getLoginStatus(如果您要调用.login可能是不必要的)来解决此问题,或者重新使用.getLoginStatus的访问令牌并将其传递给.login函数。
答案 2 :(得分:0)
唯一的固执人:
window.fbAsyncInit = function() {
FB.init({
appId : '{tu_id}',
cookie : true,
status : true,
xfbml : true,
version : 'v3.3'
});
答案 3 :(得分:0)
对于我们来说,在将服务器迁移到新的云提供商之后,我们没有将IP地址列入白名单。从Facebook Developer Dashboard更新IP地址白名单:
设置->高级->安全
解决了问题
答案 4 :(得分:0)
真正的答案是FB javascript SDK本身有问题,例如您报告的问题。您可能没有做错任何事情,该错误可能与FB的SDK(与/或与其文档有关)
我已经在FB开发者社区论坛上报告并记录了类似的错误,但不要指望很快解决。 https://developers.facebook.com/community/threads/445494736399091/ 这发生在2019年12月,当时使用Chrome和FB JS sdk v5.0
更新: 从那以后,我发现其中涉及到一些变量:例如,在使用Chrome时,某些回调会多次触发,并返回不同的accessToken和问题中报告的错误消息。
当我切换到边缘浏览器时,报告该应用程序处于测试模式时,不允许普通的Facebook用户。 wtf? (Chrome允许我的普通fb用户使用)。因此,我在开发人员的仪表板上创建了一个测试用户,当我再次登录时,没有收到您的问题中报告的错误消息。
现在,我回到Chrome,仍然使用我的普通fb用户(不是特殊测试用户),并且不再看到错误消息,或者多次触发回调。 (这是因为我给了它一些时间来重置自己吗?谁知道!)