-1
我在FB上分享动态内容时遇到问题,因为我正在构建测验。我正在使用与过去类似的方法,但这次不工作。看起来,元数据覆盖了我想要从FB.ui方法内的对象添加的数据。FB og元数据覆盖fb.ui对话框
于是我开始FB在HTML页面并添加SDK:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'app_id',
cookie : true,
status : true,
xfbml : true,
oauth : true,
version : 'v2.10'
});
FB.AppEvents.logPageView();
};
(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 = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
我再补充一个结果分享按钮:
<div class="social-btn" id="fb-shareBtn-results">
<i class="fa fa-facebook-square" aria-hidden="true"></i>
<span>Share</span>
</div>
然后在我的js文件我有对象与方法包含事件监听器我绑定到结果共享按钮,如下所示:
var quiz = {
score_tracker: 0,
facebookShare: function() {
document.getElementById('fb-shareBtn-results').onclick = function() {
FB.ui({
method: 'feed',
name: 'Quiz name',
title: 'I scored ' + quiz.score_tracker + ', can you beat me!?',
description: 'A fun quiz',
link: 'http://link-to-quiz/index.html',
picture: 'http://link-to-quiz/assets/img.png',
link: 'http://link-to-quiz/index.html',
}, function (response) {});
};
},
init: function(){
sf_quiz.facebookShare();
}}
当我单击shar在测验结束时按下e按钮,它会打开fb共享对话框,但会提取og元数据...我不知道为什么。我也曾尝试构建url并将其添加到链接的href,但这也不起作用。
如果有人有任何想法,为什么我会非常感激!
感谢
啊,好的,谢谢你的链接。这是令人失望的,但我能理解这个想法。你会介意如何在url中使用param来显示不同的标签吗?我设法使用action_properties和JSON.stringify({object:obj})来更改og标签,但是当用户fb页面上的结果是'user shared an object ..' – cucumbercoolie
http:// link-to-quiz/index.php?param1 = customvalue - 当然,您需要一个服务器语言来获取param1值,并根据该值显示不同的og标签。例如,您可以将分数置于参数值中。 – luschn
哦,我明白了。我对服务器端语言不太自信。感谢您的提示,但! – cucumbercoolie