-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