Facebook分享按钮显示不相关的标题,描述和图像

问题描述 投票:1回答:1

我知道有很多像这样的问题,但我无法回答。所以决定问一个新的。我有一个显示活动的网站,我想在Facebook上分享这个活动,所以它应该创建一个包含当前事件标题,描述和图像的共享框。

我已将facebook SDK包含在正文部分中:

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function () {
        FB.init({
            appId: '843460125752678',
            xfbml: true,
            version: 'v2.5'
        });
};
(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#xfbml=1&version=v2.5";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

我把facebook喜欢的按钮包含在某个地方:

<div class="fb-like" data-href="http://mywebsite.com" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div>

我想在Page_Load中添加代码隐藏的元标记,如下所示

        HtmlMeta hm7 = new HtmlMeta();
        hm7.Attributes.Add("property", "fb:app_id");
        hm7.Content = "my id here";
        this.Header.Controls.Add(hm7);

        HtmlMeta tag = new HtmlMeta();
        tag.Attributes.Add("property", "og:title");
        tag.Content = lblTitle.Text;
        Page.Header.Controls.Add(tag);

        HtmlMeta tag1 = new HtmlMeta();
        tag1.Attributes.Add("property", "og:description");
        tag1.Content = "Click for more info";
        Page.Header.Controls.Add(tag1);

        HtmlMeta tagurl = new HtmlMeta();
        tagurl.Attributes.Add("property", "og:url");
        tagurl.Content = "http://www.mywebsite.com";
        Page.Header.Controls.Add(tagurl);

        HtmlMeta tagimg = new HtmlMeta();
        tagimg.Attributes.Add("property", "og:image");
        tagimg.Content = "some image url";
        Page.Header.Controls.Add(tagimg);

但是当我点击分享按钮时,标题会显示为“在此处输入您的标题”,描述为“您的描述来到这里”并且它始终将我的网站徽标作为图像。

可能是什么问题呢?看起来我正在设置元标记两次..首先在html中,然后在代码隐藏中。但即使我从html中删除标签,它仍然提供相同的输出。

更新:我尝试在facebook中调试代码,我收到以下警告消息

1.即使可以从其他标签推断出值,也应明确提供'og:url'属性。 2.即使可以从其他标签推断出值,也应明确提供'og:url'属性。 3.即使可以从其他标签推断出值,也应明确提供'og:description'属性。 4.即使可以从其他标签推断出值,也应明确提供'og:image'属性。

和错误消息如下:

fb:app_id尚未包含在元标记中。指定应用ID,以便将与Facebook共享的故事正确归因于该应用。或者,可以在打开共享对话框时在URL中设置app_id。否则,将分配默认应用程序ID(966242223397117)。

asp.net facebook facebook-like meta-tags
1个回答
0
投票

首先,从设计代码中删除OpenGraph的元标记(og:title,og:description等)。然后尝试将Page.Header.Controls更改为this.Header.Controls

确保在主体部分开始后立即插入javascript代码。如果仍然无法正常工作,请尝试使用下一个代码建立共享链接:

Share via:&nbsp;<a class="text-capitalize" href="http://www.facebook.com/share.php?u=your_site.com">Facebook</a>

希望能帮助到你。如果仍然无效,请对此答案发表评论,我们会再次检查。

© www.soinside.com 2019 - 2024. All rights reserved.