使用Facebook JavaScript SDK登录时访问令牌警告

时间:2017-04-17 04:48:53

标签: facebook-javascript-sdk facebook-login

我正在使用debug.js并在执行FB.login时收到以下消息:

  

您正在覆盖当前的访问令牌,这意味着其他应用程序是   期待不同的访问令牌,你可能会破坏事物。   请考虑将access_token直接传递给API参数   而不是覆盖全局设置。

任何线索?

5 个答案:

答案 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用户(不是特殊测试用户),并且不再看到错误消息,或者多次触发回调。 (这是因为我给了它一些时间来重置自己吗?谁知道!)