Я пытаюсь получить пользователей, чтобы пользователи могли публиковать свои стены в Facebook на моем внешнем сайте.
Я столкнулся с проблемой в Safari. Если пользователь не вошел в систему, то есть они не проходили через поток, который вызывает fb.login (), я получаю следующую ошибку JS при вызове fb.ui ():
Типеррара: 'undefined' не является Объект (оценка 'b.fbcallid = a.id')
Однако, если они вошли в систему, диалоговое окно выглядит просто хорошо.
FB.UI () вызывается в функции обратного вызова - я извлекаю уникальный URL с моего сервера, а затем вызова fb.ui (). Если я позвоню fb.ui () напрямую, это работает нормально, но не когда это асинхронно.
Вот код:
retrieveUrl(param1, param2, function(result) {
FB.ui({ method: 'feed',
description: 'My Description',
display: 'dialog',
link: result.uniqueUrl,
picture: 'http://foo.com/bar.jpg'
}, function(response) {
if (response && response.post_id) {
//Posted message
} else {
//Not posted message
}
});
});
Это работает в других браузерах, независимо от регистрации в состоянии или нет.