2017年7月更新应用后,通过Facebook登录停止工作

时间:2017-07-25 22:13:03

标签: javascript php facebook codeigniter facebook-graph-api

之前通过facebook登录工作正常,没有任何问题。使用Javascript SDK通过Facebook登录是在PHP codeigniter网站上实现的。但在2017年7月更新后,我无法通过Facebook登录网站。

以下是我的代码。亲切协助。

<script type="text/javascript" defer="defer">
            window.fbAsyncInit = function () {
             FB.init({
             appId: "<?php echo $global['facebook_app_id']; ?>", // App ID
             channelUrl: "<?php echo base_url(); ?>channel.html", // Channel File 
             status: true, // check login status
             cookie: true, // enable cookies to allow the server to access the session
             picture: "http://www.fbrell.com/f8.jpg",
             xfbml: true  // parse XFBML
             });
             };
             // Load the SDK Asynchronously
             (function (d) {
             var js, id = "facebook-jssdk", ref = d.getElementsByTagName("script")[0];
             if (d.getElementById(id)) {
             return;
             }
             js = d.createElement("script");
             js.id = id;
             js.async = true;
             js.src = "//connect.facebook.net/en_US/all.js";
             ref.parentNode.insertBefore(js, ref);
             }(document));
        </script>



                function loginMe(path)
            {
                var params1 = '';
                FB.login(function (response) {
                    if (response.authResponse) {
                        console.log('Welcome!  Fetching your information.... ');
                        FB.api('/me', function (response) {
                            var params = "username=" + response.username + "&first_name=" + response.first_name + "&last_name=" + response.last_name + "&email=" + response.email + "&fb_id=" + response.id + "&gender=" + response.gender + "&birthday=" + response.birthday + "&action_type=fb_login";
                            //var params="email="+response.email; 
                            FB.api('/me/friends', function (response) {
                                //                                 alert(JSON.stringify(response));
                                var i = 0;
                                $.each(response.data, function (key, val) {
                                    i++;
                                });
                                params1 = "&facebook_friend_count=" + i;
                            });
                            if (typeof (response.email) === "undefined") {
                                alert('Sorry, there is technical problem to fetch data from facebook, please try again.');
                                window.parent.location = path;
                            }
                            jQuery.ajax({
                                type: 'post',
                                url: path + 'login-with-facebook',
                                data: params,
                                success: function (msg) {
                                    if (msg != '' && msg != 'fail') {
                                        window.location.href = path + "login-with-fb/" + msg;
                                    }
                                    else
                                    {
                                        if (msg == 'fail')
                                            alert('Sorry, there is technical problem to fetch data from facebook, please try again.');
                                        window.parent.location = path;
                                    }
                                }
                            });
                        });

                    } else {
                        //console.log('User cancelled login or did not fully authorize.');
                    }
                }, {"scope": "email,read_stream"});
            }               

每次输入我的登录凭据后,我都会收到警报“抱歉,从Facebook获取数据存在技术问题,请再试一次。”我无法从Facebook获取用户详细信息。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

Version 2.3 of the Facebook API was deprecated on July 8, 2017。更新配置代码以使用更高版本,并确保一切仍然有效。您还应该查看upgrade guide中的更改。

以下是the documentation的配置示例:

window.fbAsyncInit = function() {
  FB.init({
    appId            : 'your-app-id',
    autoLogAppEvents : true,
    xfbml            : true,
    version          : 'v2.10'  // <-- Right here
  });
  FB.AppEvents.logPageView();
};