Мне нравится использовать JS SDK вместе с PHP SDK для получения дополнительной функциональности.
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $this->appId ?>',
session : <?php echo json_encode($this->fb->getSession()); ?>, // don't refetch the session when PHP already has it
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/es_ES/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
Затем назначьте эту функцию любой ссылке или кнопке, для которых вы хотите открыть диалог входа в систему и разрешения (я использую jQuery и ссылку с классом .fbConnect для примера):
$(".fbConnect").click(function() {
FB.login(function(response) {
window.location.reload();
}, {perms: 'user_photos,user_photo_video_tags,email,publish_stream'});
});
Обратите внимание, что разрешения указаны в объекте perms. Когда он перезагрузится, сессия должна быть доступна для вашего PHP SDK.
Также убедитесь, что вы работаете с тем же URL-адресом, который вы указали в конфигурации вашего приложения, иначе он не будет работать.