为什么FB.UI共享响应什么都不返回?
我已经设置了由Jquery触发的共享弹出窗口。它的工作原理,但我想使用响应值触发成功的AJAX调用,Facebook只返回一个空数组。为什么FB.UI共享响应什么都不返回?
这里是JavaScript
$("#fb-request").click(function() { FB.ui({ method: 'share', name: 'Check out website', href: 'URL_TO_SHARE', }, function (response) { if (response && !response.error_code) { console.log(response); // Returns: [] } }); });
正因为如此,我不能让别人谁的帖子,有人谁使用取消按钮之间的差异。我在这里错过了什么吗? 或者有什么可以在Facebook应用上设置的东西?
感谢,
响应数据
参数说明 OBJECT_ID 仅当用户使用Facebook的登录到您的应用程序,并授予publish_actions。如果存在,这是发布的Open Graph故事的ID。
我的疑惑现在已经解决了!这应该被标记为接受的答案。 – andufo 2014-12-20 02:33:50
好吧,我登录FB.login的背景,但这并没有帮助,我仍然得到空的回应 – 2016-02-01 11:33:40
你应该提供登录访问权限,它是这样的: 'function myFacebookLogin(){ FB。 login(function(){},{scope:'publish_actions'}); }' – 2016-02-01 11:54:46
如果用户取消了对话框中的份额,响应是不确定的,所以:
$("#fb-request").click(function() {
FB.ui({
method: 'share',
name: 'Check out website',
href: 'URL_TO_SHARE',
},
function (response) {
if (response && !response.error_code) {
if (typeof response != 'undefined'){
//shered
}
}
});
});
此代码在PC/Android中正常工作,但在iOS上无法使用。 只要用户没有登录到您的应用程序(具有适当的权限),响应的值将始终是一个空数组(不管共享是否发生)。 – 2017-07-02 14:34:10
首先检查,如果你的用户连接。
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.ui(
{
method: 'feed',
link: 'your_url',
mobile_iframe: true
},
function(response){
});
}
else {
FB.login(function(response){
FB.ui(
{
method: 'feed',
link: 'your_url',
mobile_iframe: true
},
function(response){
});
});
}
});
这对我有用。
FB.ui({
method: 'share',
display: 'popup',
href: url,
}, function(response){
if (typeof response != 'undefined'){
alert("shared");
}else{
alert("no shared");
}
});
Tagged:jQuery lol – 2015-09-24 13:32:10