2017-09-25 106 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