【问题标题】:Facebook share button shows irrelevant title,description and imageFacebook 分享按钮显示不相关的标题、描述和图像
【发布时间】:2016-03-19 04:56:48
【问题描述】:

我知道有很多这样的问题,但我无法回答。所以决定问一个新的。我有一个显示事件的网站,我想在 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)。

【问题讨论】:

  • 如果您告诉我们实际网址,这将更容易检查。
  • 当我调试它并在“共享”对话框中查看它的样子时,它会显示标题“营养研讨会”和“单击以获取更多信息”作为描述。未显示指定的图像,因为它太小(正如调试工具明确指出的那样。)
  • 是的,看起来它现在正在运行。Facebook 每次都需要“获取新信息”。

标签: asp.net facebook facebook-like meta-tags


【解决方案1】:

首先,从您的设计代码中删除 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>

希望对您有所帮助。如果仍然不行,请对此答案发表评论,我们将再次检查。

【讨论】:

  • 如果您添加下一个元标记,那就太好了: HtmlMeta hm7 = new HtmlMeta(); hm7.Attributes.Add("property", "fb:app_id"); hm7.Content = "11111111111111111"; //你的 fb_application_id
  • 我已经进行了必要的更改,并在查看源代码中创建了以下元标记:
    但我仍然遇到同样的问题“标题出现为“在此处输入您的标题”,描述为“您的描述出现在此处”并且它一直以我的网站徽标作为图像。”
  • 我不太清楚,但是如果您将“http://”添加到您的网址会怎样?我认为它会导致错误,因为它找不到。并尝试通过 Facebook 调试器调试您的页面:developers.facebook.com/tools/debug
猜你喜欢
相关资源
最近更新 更多
热门标签