Вчера я изменил настройки приложения и включил «Новые права доступа к данным» и «Новые SDK».
После этого перестала работать функция отправки сообщения на стену пользователя. На моем веб-сайте пользователи входят в систему с помощью API Facebook (Graph) и могут публиковать сообщения на своей стене.
Это мой старый код, который работал нормально:
function publish_with_permission(permission,action_links,attachment) {
FB.ensureInit(function() {
FB.Connect.requireSession(function(){
//check is user already granted for this permission or not
FB.Facebook.apiClient.users_hasAppPermission(permission,
function(result) {
// prompt offline permission
if (result == 0) {
// show the facebook permission dialog
FB.Connect.showPermissionDialog(permission,
function(result){
if (!result) {
FB.Connect.streamPublish('', attachment, action_links, null, "Post this:", jscallback);
} else {
// permission granted, post without facebook dialog
FB.Connect.forceSessionRefresh(function() {
FB.Connect.streamPublish('', attachment, action_links, null, "Post this:", jscallback,true);
});
}
}, true, null);
} else {
// permission already granted, post suddenly
// without facebook dialog
FB.Connect.streamPublish('', attachment, action_links, null, "Post this:", jscallback,true);
}
});
});
});
}
Функция просто зависает и ничего не происходит. Я искал на этом форуме и нашел этот сообщение
function fb_publish() {
FB.ui(
{
method: 'stream.publish',
message: 'Message here.',
attachment: {
name: 'Nom ici.',
caption: 'Caption here.',
description: (
'description here'
),
href: 'url here'
},
action_links: [
{ text: 'Code', href: 'action url here' }
],
user_prompt_message: 'Personal message here'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
}
Этот работает, но у него есть две проблемы: 1) Даже если пользователь впервые входит в систему с помощью графического API и предоставил расширенные разрешения для публикации на своей стене, этот метод каждый раз будет спрашивать пользователя, разрешить или нет - предыдущий никто этого не делал. 2) Этот метод также позволяет пользователям добавлять свои комментарии - я тоже не хочу этого.
Я хочу беспрепятственно опубликовать на стене, не запрашивая снова разрешение, поскольку они уже давали его раньше.
Я использую PHP - буду благодарен за любые советы. Спасибо