我花了几个小时研究这个,但对于那里的许多开发者来说似乎很棘手。我有一个小的PHP测验,通过以下方式从表单输出结果:
if (maxA) {
echo '
<img src="imgs/result4.jpg"/>
<div class="results2">
<p class="title">You are a Bean</p>
<p class="details">Description</p>
</div>';
}
问题是,如何在此底部添加一个“共享”按钮,该按钮将在Facebook上与描述和图片共享结果。请注意,有四个可用结果。
我制作了一个公共应用,并在头部插入了以下内容:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '1382290368762081',
xfbml : true,
version : 'v2.3'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
HTML尚未弄明白。我来回回答:Using "share_open_graph" Facebook UI to create dynamic share dialog for quiz results - 但实际上并没有实现任何目标。我认为如果有人知道实现这一目标的确切方法,那将对整个社区有所帮助,并与我们分享
答案 0 :(得分:10)
您可以使用facebook js SDK。你可以调用FB.ui方法feed来实现这个目的。 在页面上创建一个按钮
<input type="button" onclick="postToFeed()" value="Share" />
。使用以下函数javscript在facebook上分享。
function postToFeed() {
// calling the API ...
var obj = {
method: 'feed',
link: 'https://www.azeezkallayi.com/',
description: "description goes here",
picture: 'https://www.azeezkallayi.com/demo/test/womens-day.jpg',
name: 'International womens day'
};
FB.ui(obj);
}
您可以在此处根据需要更改参数值。
答案 1 :(得分:-1)
继@ Azeez的回答:尽管@ CBroe的评论,没有必要为每个不同的结果创建四个URL。处理这种情况的最佳方法是使用Feed dialog进行Facebook共享(与“共享”对话框类似,但不一样 - 共享方法无法修改,而是从元标记中提取其信息)页)。
然后,您可以使用Javascript SDK(包含您的应用ID)打开一个新的 Feed 对话框,其中填充了完全唯一的项目。例如:
// Facebook Share
$('#facebook-share').on('click', function(e){
e.preventDefault();
FB.ui({
method: 'feed',
link: 'http://www.example.com/Quiz/',
picture: '<?= $FacebookShareImage; ?>',
name: 'This is a headline',
caption: 'example.com',
description: 'Your longer description goes here'
}, function(response){
if (response) {
console.log('Facebook post published.');
showThankYou();
} else {
console.log('Facebook post was not published.');
}
});
});
您可以阅读上述Feed dialog documentation page的其余可用属性。