Facebook oauth 2.5 今天过期 = 400 产品中的错误请求

Facebook oauth 2.5 expired today = 400 Bad request in prod

今天(2​​018 年 4 月 12 日)FB 弃用了 oauth 2.5,我的所有 Unity android 游戏用户都收到错误:“400 Bad Request”。 我已经在开发人员设置中添加了所有可能的重定向 URI,并将 oauth 升级到 2.6(也尝试了 2.7),但它仍然无法正常工作。 生产用户收到相同的“400 Bad request”错误,我的游戏登录无效。 请给我一些关于如何在不创建新的应用程序更新的情况下解决此问题的想法,新的应用程序更新需要数月才能更新给所有用户。

这是失败的产品代码:

FB.API("/me?fields=id,name,gender,first_name,last_name,email", HttpMethod.GET, new FacebookDelegate<IGraphResult>((IGraphResult e) => onFBUserInfo(e)));

谢谢!!!

更新:异常是:OAuthException 2500 必须使用活动访问令牌来查询有关当前

的信息

感谢@CBroe,我设法通过使用他的 scoped_id 删除用户权限并获取 App Token 来解决问题。这是 Graph Explorer 屏幕截图。 现在我将自动化该过程并撤销所有用户:

UPDATE:我能够制作图表 api DELETE 脚本,它重置了我的用户权限,他们能够正常登录。 然而,问题的根本原因似乎在 facebook 方面,因为这是 FB 技术支持的回复:

The issue seems to be on our side. We have just applied a fix to address FB Login issues with Unity, related to access token

这是我的 JS 重置权限脚本:

function deleteALL(index, endIndex) {
    var access_token = "<INSERT YOUR APP TOKEN HERE>";
    var URL = "https://graph.facebook.com/v2.11/"+arr[index]+"/permissions/?method=delete&access_token="+access_token;
    $.ajax({
      url: URL,
      context: document.body
    }).done(function(data) {
        console.log("SUCCESS:"+data.success+" index: "+index);
      if (endIndex > index+1)
          deleteALL(index+1, endIndex);
    }).fail(function() {
        console.log("FAILED: index: "+index);
      if (arr.length > index+1)
          deleteALL(index+1, endIndex);
    });
}