У нас есть опция входа в 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
}
}
Спасибо