2017-09-25 105 views
-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,但這也不起作用。

如果有人有任何想法,爲什麼我會非常感激!

感謝

回答

0

自定義/動態代碼是不可能的了:https://developers.facebook.com/blog/post/2017/06/27/API-Change-Log-Modifying-Link-Previews/

你必須使用與Open Graph的標籤靜態URL。使用URL中的參數來顯示不同的標籤。

+0

啊,好的,謝謝你的鏈接。這是令人失望的,但我能理解這個想法。你會介意如何在url中使用param來顯示不同的標籤嗎?我設法使用action_properties和JSON.stringify({object:obj})來更改og標籤,但是當用戶fb頁面上的結果是'user shared an object ..' – cucumbercoolie

+0

http:// link-to-quiz/index.php?param1 = customvalue - 當然,您需要一個服務器語言來獲取param1值,並根據該值顯示不同的og標籤。例如,您可以將分數置於參數值中。 – luschn

+0

哦,我明白了。我對服務器端語言不太自信。感謝您的提示,但! – cucumbercoolie