Facebook 分享按钮显示不相关的标题、描述和图片
Facebook share button shows irrelevant title,description and image
我知道有很多这样的问题,但我无法回答。所以决定问一个新的。我有一个显示活动的网站,我想在 Facebook 上分享活动,因此它应该创建一个包含当前活动标题、描述和图片的分享框。
我在 body 部分包含了我的 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
中添加来自 code-behind 的元标记,如下所示
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);
但是当我点击分享按钮时,标题显示为 "Enter your title here",描述为 "Your description comes here",并且一直以我的网站徽标作为图像。
可能是什么问题?看起来我设置了两次元标记..首先是 html,然后是 code-behind。但即使我从 html 中删除标签,它仍然会给出相同的输出。
更新:我尝试调试 facebook 中的代码,但收到以下警告消息
1.The 'og:url' 属性 应该明确提供,即使可以从其他标签推断出一个值。
2.The 'og:url' 属性 应该明确提供,即使可以从其他标签推断出一个值。
3.The 'og:description' 属性 应该明确提供,即使可以从其他标签推断出一个值。
4.The 'og:image' 属性 应该明确提供,即使可以从其他标签推断出一个值。
错误信息如下:
fb:app_id 未包含在元标记中。指定应用程序 ID,以便将分享到 Facebook 的故事正确归因于该应用程序。或者,可以在打开共享对话框时在 url 中设置 app_id。否则,将分配默认应用程序 ID( 966242223397117 )。
首先,从您的设计代码中删除 OpenGraph 的元标记(og:title、og:description,等等)。然后尝试将 Page.Header.Controls
更改为 this.Header.Controls
.
确保您在正文部分开始时就插入了 javascript 代码。如果还是不行,尝试用下一段代码做一个link来分享:
Share via: <a class="text-capitalize" href="http://www.facebook.com/share.php?u=your_site.com">Facebook</a>
希望对您有所帮助。如果还是不行,请评论这个答案,我们会再次检查。
我知道有很多这样的问题,但我无法回答。所以决定问一个新的。我有一个显示活动的网站,我想在 Facebook 上分享活动,因此它应该创建一个包含当前活动标题、描述和图片的分享框。
我在 body 部分包含了我的 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
中添加来自 code-behind 的元标记,如下所示 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);
但是当我点击分享按钮时,标题显示为 "Enter your title here",描述为 "Your description comes here",并且一直以我的网站徽标作为图像。
可能是什么问题?看起来我设置了两次元标记..首先是 html,然后是 code-behind。但即使我从 html 中删除标签,它仍然会给出相同的输出。
更新:我尝试调试 facebook 中的代码,但收到以下警告消息
1.The 'og:url' 属性 应该明确提供,即使可以从其他标签推断出一个值。 2.The 'og:url' 属性 应该明确提供,即使可以从其他标签推断出一个值。 3.The 'og:description' 属性 应该明确提供,即使可以从其他标签推断出一个值。 4.The 'og:image' 属性 应该明确提供,即使可以从其他标签推断出一个值。
错误信息如下:
fb:app_id 未包含在元标记中。指定应用程序 ID,以便将分享到 Facebook 的故事正确归因于该应用程序。或者,可以在打开共享对话框时在 url 中设置 app_id。否则,将分配默认应用程序 ID( 966242223397117 )。
首先,从您的设计代码中删除 OpenGraph 的元标记(og:title、og:description,等等)。然后尝试将 Page.Header.Controls
更改为 this.Header.Controls
.
确保您在正文部分开始时就插入了 javascript 代码。如果还是不行,尝试用下一段代码做一个link来分享:
Share via: <a class="text-capitalize" href="http://www.facebook.com/share.php?u=your_site.com">Facebook</a>
希望对您有所帮助。如果还是不行,请评论这个答案,我们会再次检查。