当我使用Facebook JS SDK FB.ui调用使用“发送”对话框时,不会触发回调。
FB.ui(
{
method: 'send',
to: ****, // fbId
redirect_uri: *****, // public URL in my app domain
link: ***** // public URL
},
function(response) {
alert('callback was called!');
if (response != null) {
console.log('Request was passed along!');
location.href= ***; // just in case redirect_uri doesn't work
return true;
}
else {
console.log('Not passed along. User clicked cancel');
}
}
);
预期行为:应显示警报。应记录控制台消息。并且应该将用户发送到redirect_uri。
实际行为:这三件事都不会发生。将打开“发送”对话框,并正确填充“:”字段。单击“发送”时,会正确发送。但我需要触发回调,并且需要将用户发送到redirect_uri。
答案 0 :(得分:2)
删除redirect_uri
项目,将触发回叫。
我几分钟后面临同样的问题,并意识到删除redirect_uri
解决了它。
答案 1 :(得分:1)
每个FB.UI都有一个回调函数,它也适用于发送对话框。
有关FB.UI的一般语法,请参阅此document。
但问题在于其他FB.UI方法,SEND方法没有返回值。
根据Facebook文档,
如果发送邮件成功,用户将被重定向到redirect_uri。否则,将显示错误。与Like不同 按钮,本身没有返回值。
因此,如果消息发送成功并且您没有redirect_uri,那么回调将没有任何内容作为返回值,否则在消息发送失败时发送错误。
要确认回调是否正常,请使用以下代码
FB.ui({
method: 'send',
name: 'People Argue Just to Win',
link: 'http://www.nytimes.com/2011/06/15/arts/people-argue-just-to-win-scholars-assert.html',
},
function(response){
alert(response);
if(response != null){
alert('user clicked send');
}else{
alert('user clicked cancel');
}
});
当您单击发送并且消息成功发送时,它将提醒空字符串,当您单击取消时,它将提示“空”。
答案 2 :(得分:0)
您是否已在其他浏览器上验证过?检查一下您的浏览器设置。 您是否安装了“Facebook Disconnect”这样的扩展程序?