我希望在Facebook上进行共享时收到回复,并在回复时发出警报。
我制作了以下剧本
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({
appId:'<?php echo $this->config->item('appID'); ?>', cookie:true,
status:true, xfbml:true,oauth : true
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function get_fb_share() {
FB.ui({
method: 'feed',
name: 'IGUTS Share',
link: "<?php echo base_url();?>",
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
message: 'Facebook Dialogs are easy!'
}, function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
});
}
</script>
我把上面的代码放在标题上。
然后我通过以下方式呼叫get_fb_share()
:
<div class="fb-share-button" data-href="<?php echo base_url();?>"
data-width="50" data-type="button_count"
onclick="get_fb_share();"></div>
现在我不知道自己做错了什么;我可以分享链接,但我无法获得任何FB响应。
有人可以告诉我为什么吗?
我发现当我使用这个div进行共享时,即
<div class="fb-share-button" data-href="<?php echo base_url();?>"
data-width="50" data-type="button_count"
onclick="get_fb_share();"></div>
我没有得到任何回应。
但如果我使用这样的普通按钮,即
<input type="button" onclick="get_fb_share();" value="share"/>
然后我得到了答复。但这并不完美。我正在使用Facebook
<div class="fb-share-button">
因为它显示了没有。股票也是如此。这就是我需要get_fb_share()函数的原因,可以通过Facebook共享div来调用,而不仅仅是通过任何按钮调用。
答案 0 :(得分:0)
我已经在一个较新的帖子中回答了这个问题,但我会在这里复制我的答案:
远程弃用Feed对话框,您应该使用share dialog代替。处理起来要容易得多:
FB.ui({
method: 'share',
href: your-url
}, function (response) {
console.log(response);
});
当我取消分享时,这是我在控制台中获得的内容:
对象{error_code:4201,error_message:“用户取消了对话框流程”}
......这就是我分享时所得到的:
[]
是的,这是一个空数组,它将点击“发布未发布”警报。只有在您使用publish_actions
授权用户时,才能使用帖子ID,因为您可以在文档中阅读。
这对我有用:
FB.ui({
method: 'share',
href: your-url
}, function (response) {
if (response.error_code) {
console.log(response);
} else {
console.log('published');
}
});
但是:你不应该使用那些回调,不允许激励股票,如果他愿意,用户应该能够更频繁地分享。