Próbuję umożliwić użytkownikom umieszczanie postów na swoich ścianach Facebooka w mojej witrynie zewnętrznej.FB.ui() podając błąd w Safari z asynchronicznym żądaniem, gdy użytkownik nie jest jeszcze zalogowany
Znalazłem problem w Safari. Jeśli użytkownik nie jest zalogowany, tzn. Nie przeszedł przez przepływ wywołujący funkcję FB.login(), pojawia się następujący błąd JS podczas wywoływania FB.ui():
TypeError: 'undefined' nie jest obiekt (oceniający "b.fbCallID = a.id")
Jednakże, jeśli są one zalogowane, okno dialogowe wygląda dobrze.
Funkcja FB.ui() wywoływana jest w funkcji wywołania zwrotnego - pobieram unikalny adres URL z mojego serwera, a następnie wywołuję funkcję FB.ui(). Jeśli zadzwonię bezpośrednio do FB.ui(), to działa dobrze, ale nie wtedy, gdy jest asynchroniczne.
Oto kod:
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
}
});
});
To działa w innych przeglądarkach, niezależnie od stanu zalogowany czy nie.
Widzę ten sam problem ... – DuckMaestro