Facebook войти с блокировщиком контента - PullRequest
0 голосов
/ 24 сентября 2019

У нас есть опция входа в Facebook на нашем веб-сайте с использованием графических функций, и после обновления браузеров у нас возникнут проблемы с этим, если мы не отключим автоматическую блокировку контента в браузерах.Первоначально это было с Edge, затем Firefox начал испытывать это, но в данный момент Chrome выглядит нормально.

Мне интересно, есть ли у кого-нибудь совет, код, помогите изменить наш код, чтобы он работал без проблем.На других сайтах кажется вполне приемлемым использовать событие FB с включенными блокировщиками, но, используя примеры кода FB, способ, которым мы его сейчас используем, должен работать независимо.Поэтому мы не уверены, что у нас пропущены биты, или что-то неправильно подключено.

// Setup:
window.fbAsyncInit = function () {
    FB.init({
        appId: <FACEBOOK_APP_ID>,
        cookie: true,
        xfbml: true,
        version: "v3.2" // not been told by Facebook we need to upgrade
    });
};

// Load the SDK asynchronously
(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

Step 1:
FB.login(function (response) {
    if (response.authResponse) {
        ConnectWithFacebook();
    }
}, {scope: 'public_profile,email'});

Step 2:
function ConnectWithFacebook() {
    try {
        FB.getLoginStatus(function (response) {
            if (response.status === 'connected') {
                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;

                var fbDeclined = new Array();
                FB.api("/me/permissions", function (response) {
                    if (typeof response.data === "undefined" || response.data === null) {
                        // call method to ask for requires permissions with paassing the response
                        // metod checks for public_profile and email, request a rerequest if not all granted
                    }
                    else {
                        for (var i = 0; i < response.data.length; i++) {
                            if (response.data[i].status == "declined") {
                                // add to fbDeclined array declined permissions
                            }
                        }
                        // if all permissions granted
                        if (fbDeclined.length == 0) {
                            FB.api('/me?fields=name,email',
                                function (response) {
                                    // everything is OK => proceed to next method
                                }
                            );
                        }
                        // if not all permissions granted
                        else {
                            // call method to request permissions
                        }
                    }
                });
            }
            else if (response.status === 'unknown') {
                // handle unknown status
            }
            else if (response.status === 'not_authorized') {
                // handle for Facebook authorization
                // calls https://graph.facebook.com/oauth/authorize?client_id=<FACEBOOK_APP_ID>&scope=public_profile,email&redirect_uri=<RETURN_URL>&response_type=token";
            }
            else {
            // ask user to log in to Facebook, come back to site and try to login again following logging into Facebook
            }
        });
    } catch (e) { 
        // something went wrong, show a message
    }
}

Спасибо

...