我无法从我的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 {
}
}
);
答案 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会禁用回调