Канал FB.ui не дает обратного вызова - PullRequest
4 голосов
/ 17 ноября 2011

Я не могу получить никакой обратной связи от моего метода Facebook FB.UI ().Я убежден, что я правильно его использую, поскольку фактическое сообщение публикуется на моей стене, но данные обратного вызова либо отсутствуют, либо пусты.Я использую:

                    FB.ui({
                       method: 'feed',
                        name: 'asd',
                        link: 'asd',
                        picture: '',
                        description: 'asd'
                    }, function(response) {
                        console.log(response);
                            if(response.post_id) {
                               $.post("ajax/wall.php",{wall : 1});
                            } else {

                            }
                        }
                    );

Ответы [ 6 ]

3 голосов
/ 19 ноября 2011

Я не уверен, как это решило само себя, , но это сделало :)

Я очистил свой кеш и изменил свой код на ниже, и это сработало (однако я не верю, что изменение кода действительно повлияло на это:

FB.ui({method: 'feed',name: '',link: '',picture: '',description: 'asd'}, function(data) {
    console.log(response);
    if(data && data.post_id) {
        $.post("ajax/wall.php",{wall : 1});
    } else {
        alert("not sent");  
    }
 });
2 голосов
/ 28 сентября 2012

Для тех, кто сталкивался с этой проблемой позже, у меня была точно такая же проблема, и я исправил ее следующим образом:

<div class="post-view-backdrop hide" id='post-view-backdrop'>
    <div id="fb-root"></div>

стал

<div class="post-view-backdrop hide" id='post-view-backdrop'></div>
<div id="fb-root"></div>

div-файл post-view-background былЯ никогда не хотел содержать корень fb, я просто пропустил закрывающий тег.

Проблема была в том, что HTML неправильно сформирован вокруг моего корня fb.Я нашел это только на догадку, определенно причина использовать HTML-валидатор.

2 голосов
/ 08 сентября 2012

Удалите элемент redirect_uri, и будет выполнен обратный вызов.

Я столкнулся с той же проблемой несколько минут назад и понял, что удаление redirect_uri решило ее.

2 голосов
/ 27 января 2012

У меня такая же проблема, и я так и не смог получить ответ от Facebook для функции обратного вызова. Я не вижу ничего в console.log или каких-либо предупреждениях, которые вставляю в функцию.

Мое решение состояло в том, чтобы поместить URL в redirect_uri FB.ui, который идет на страницу HTML с self.close (или window.close). Всплывающее окно FB.ui перенаправляется туда после ввода пользователя и сразу закрывается. Не забудьте изменить настройку URL-адреса сайта вашего приложения FB, чтобы она соответствовала домену, в котором находится файл.

Вот мой код, связанный с действием отправки формы. Функция (ответ) обратного вызова все еще там, но не используется. Если кто-то видит синтаксическую ошибку, пожалуйста, прокомментируйте ее.

    FB.ui ({
        method: 'feed',
        name: '',
        link: '',
        picture: '',
        caption: '',
        description: '',
        actions: {name:'',link:''},
        redirect_uri: 'http://.../self.close.html'
        },
        function(response) {
            console.log(response);
            if (response && response.post_id) {
                alert('yes');
                self.close();
            } else {
                alert('else yes');
            }
        });

Строка кода в self.close.html:

<script type="text/javascript">self.close();</script>
1 голос
/ 07 марта 2013

установка redirect_uri отключает обратный вызов

1 голос
/ 12 августа 2012

Для всех, кто занимается Phonegap, решает эту проблему - проблема с плагином fb connect. Он просто не запускает обратные вызовы.

Вот фрагмент кода от FacebookConnectPlugin.m:

////////////////////////////////////////////////////////////////////
// FBDialogDelegate

/**
 * Called when the dialog succeeds and is about to be dismissed.
 */
- (void)dialogDidComplete:(FBDialog *)dialog
{
    // TODO
}

/**
 * Called when the dialog succeeds with a returning url.
 */
- (void)dialogCompleteWithUrl:(NSURL *)url
{
    // TODO 
}

/**
 * Called when the dialog get canceled by the user.
 */
- (void)dialogDidNotCompleteWithUrl:(NSURL *)url
{
    // TODO 
}

/**
 * Called when the dialog is cancelled and is about to be dismissed.
 */
- (void)dialogDidNotComplete:(FBDialog *)dialog
{
    // TODO 
}

Я не программист Objective C, поэтому я не пытаюсь решить эту проблему, вероятно, придется подождать, пока плагин будет завершен ...

...