Niżej zamieszczony kod sprawdza, czy użytkownik jest zalogowany na Facebooku (Apps, Canvas). Jeśli tak, wyświetla powitanie zawierające jego imię, a jeśli nie, prosi o nadanie aplikacji odpowiednich uprawnień...no właśnie, przy pomocy okienka, które jest ramką. Cześć przeglądarek, zwłaszcza mobilne, w szczególności ta wbudowana w Facebook Mobile (jak na ironię), blokuje taką możliwość, nawet jeśli ramka nie pojawia się automatycznie, tylko po akcji użytkownika (np. kliknięciu przycisku "zaloguj"). W praktyce uniemożliwia to korzystanie z aplikacji na niektórych urządzeniach. Jakieś pomysły? Z góry dzięki ;)
window.fbAsyncInit = function() {
FB.init({
appId : '2740735539659186',
xfbml : true,
version : 'v2.5'
});
function onLogin(response) {
if (response.status == 'connected') {
FB.api('/me?fields=first_name', function(data) {
var welcomeBlock = document.getElementById('fb-welcome');
welcomeBlock.innerHTML = 'Hello, ' + data.first_name + '!';
});
}
}
FB.getLoginStatus(function(response) {
// Check login status on load, and if the user is
// already logged in, go directly to the welcome message.
if (response.status == 'connected') {
onLogin(response);
} else {
// Otherwise, show Login dialog first.
FB.login(function(response) {
onLogin(response);
}, {scope: 'user_friends, email'});
}
});
};
(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'));