FB.ui feed没有给出回调

时间:2011-11-17 14:00:16

标签: jquery facebook facebook-javascript-sdk fbjs fb.ui

我无法从我的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 个答案:

答案 0 :(得分:3)

我不确定这是如何解决的,但确实:)

我清除了我的缓存并将我的代码更改为下面并且它有效(但我不相信代码的更改实际上对它有任何影响:

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");  
    }
 });

答案 1 :(得分:2)

我遇到了同样的问题,并且从未能从Facebook获得回复功能的回复。我没有在console.log中看到任何内容或我在函数中插入的任何警报。

我的解决方案是在FB.ui的redirect_uri中放入一个URL,该URL将转到带有self.close(或window.close)的HTML页面。 FB.ui弹出窗口在用户输入后重定向到那里并立即关闭。请记住更改FB应用程序的站点URL设置,使其与文件所在的域匹配。

这是我的代码,与我的表单的提交操作相关联。函数(响应)回调仍然存在但未使用。如果有人发现语法错误,请对其进行评论。

    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>

答案 2 :(得分:2)

删除redirect_uri项目,将触发回叫。

我几分钟后面临同样的问题,并意识到删除redirect_uri解决了它。

答案 3 :(得分:2)

对于之后遇到此问题的人,我遇到了完全相同的问题,并将其修复如下:

<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从未打算包含fb-root,我只是错过了一个密切的标签。

问题是在我的fb-root周围形成了不正确的HTML。我只是预感到这一点,绝对有理由使用html验证器。

答案 4 :(得分:1)

对于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程序员,所以我不是要解决这个问题,可能要等到插件完成...

答案 5 :(得分:1)

设置redirect_uri会禁用回调