После прочтения вашего вопроса и различных комментариев мне кажется, что информация о сеансе пользователя не сохраняется в JavaScript SDK - это предполагает, что на сервере поддерживается действительный сеанс пользователя.
Прежде всего вы должны проверить, используете ли вы самый последний PHP SDK. Для двойной проверки скачайте и установите последнюю версию с GitHub .
Я думаю, что это должно решить вашу проблему, так как куки, содержащие данные сеанса авторизованных пользователей, должны передаваться между PHP и JavaScript SDK.
Если это не сработает, у меня есть подозрение, что пользователь неправильно проходит проверку подлинности на стороне сервера. В этом случае вы можете попробовать следующее.
Перед вами postToFacebook()
вы должны проверить пользователей, вошедших в систему, и при необходимости войти в систему. Например:
FB.getLoginStatus(function(response) {
if (response.authResponse) {
// logged in and connected user, someone you know
postToFacebook();
} else {
// no user session available, someone you dont know
FB.login(function(response) {
if (response.authResponse) {
// logged in and connected user
postToFacebook();
} else {
// User cancelled login or did not fully authorize
}
}, {scope: 'YOUR,REQUIRED,PERMISSIONS'});
}
});