fb.ui () дает ошибку в Safari с асинхронным запросом, когда пользователь еще не вошел в систему

Я пытаюсь получить пользователей, чтобы пользователи могли публиковать свои стены в 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
                }
            });
        });

Это работает в других браузерах, независимо от регистрации в состоянии или нет.

5
задан pricklypear 9 September 2011 в 17:07
поделиться