Facebook登录移动投掷错误屏幕而不是登录屏幕

时间:2016-11-18 16:30:14

标签: javascript facebook facebook-graph-api

我通过Facebook将用户注册到我的网站,并在移动设备上遇到了问题。我首先要说的是我对Facebook用户登录流程相当新。旅程如下:

首先我点击一个按钮调用fb.login函数启动facebook弹出窗口,让他们像这样登录:

jQuery(".welcome-cta-facebook span").on("click",function(){     
    FB.login(function(response) {
        if (response.authResponse) {
            getFbUserDetails();
        } else {
            console.log('User cancelled login or did not fully authorize.');
        }
    });
});

然后我在登录后调用getFbUserDetails函数并接受应用程序,如下所示:

function getFbUserDetails(){
    FB.api(
      '/me',
      'GET',
      {"fields":"id,name,picture{url},email"},
      function(response) {
          console.log(response);
          fbParameters = "?facebookID=" + response.id + "&facebookName=" + response.name + "&facebookEmail=" + response.email + "&facebookProfilePictureURL=" + response.picture.url;

          /* then send the fb parameters to my DB */
      }
    );
};

这个旅程的工作原理与桌面应用的完全相同,但是我遇到了移动设备的一些问题,我不确定如何解决:

  • 如果用户未登录其移动浏览器,则会收到以下错误:
  

未登录:您尚未登录。请登录并重试

  • 如果用户通过移动浏览器登录,则会收到以下错误:
  

" URL已阻止:此重定向失败,因为重定向URI不是   已在应用的客户端OAuth设置中列入白名单。确保客户端和   已启用Web OAuth登录,并将所有应用程序域添加为有效OAuth   重定向URI。"

如果在桌面上工作正常,我不确定为什么我会看到这些错误。如何在移动设备上收集某人的详细信息?我使用这种方法是对的吗?值得注意的是我没有使用facebook登录按钮。

感谢并感谢我能得到的帮助!

1 个答案:

答案 0 :(得分:4)

您需要为您的Facebook应用添加白名单fied中的所有URI

Facebook Developers -> Settings -> Advanced -> Security

在“安全性”块中,您将看到“允许使用IP的服务器”

在此字段中添加所有URI