将Facebook Open Graph Protocol元标记添加到sharepoint

时间:2011-04-19 19:42:00

标签: sharepoint facebook-like

当我喜欢我们的网站(www.potatopro.com)上的文章时,有Facebook和facebook分享按钮,错误的网站数据被提取。 要么您无法更改图片,要么在其他情况下Facebook取出导航而不是内容。

据我了解,我必须在我们的网站上实现facebook的开放图协议元标记。但是我如何为基于sharepoint的网站做到这一点?!请指教!

1 个答案:

答案 0 :(得分:3)

您可以将webpart添加到您的网页正在使用的pagelayout。在webpart中,您添加一个函数,该函数在页面上查找标题,内容和图像,并将元标记写入页面正在使用的母版页。这是函数的一个例子......

protected override void Render(HtmlTextWriter writer)
    {
        if (SPContext.Current != null && SPContext.Current.ListItem != null)
        {
            SPListItem item = SPContext.Current.ListItem;
            var title = item["Title"];
            if (title != null)
            {
                writer.WriteBeginTag("meta");
                writer.WriteAttribute("property", "og:title");
                writer.WriteAttribute("content", title.ToString());
                writer.WriteEndTag("meta");
            }
            var pageContent = item["PublishingPageContent"];
            if (pageContent != null)
            {
                string strippedPageContent = Regex.Replace(pageContent.ToString(), @"<(.|\n)*?>", string.Empty);
                    writer.WriteBeginTag("meta");
            writer.WriteAttribute("property", "og:description");
            writer.WriteAttribute("content", strippedPageContent);
            writer.WriteEndTag("meta");
            }

            var pageImage = item["PublishingPageImage"];
            if (pageImage != null)
            {
                ImageFieldValue pageImageValue = pageImage as ImageFieldValue;
                if (pageImageValue != null)
                {
                    var url = pageImageValue.ImageUrl;
                    writer.WriteBeginTag("meta");
                    writer.WriteAttribute("property", "og:image");
                    writer.WriteAttribute("content", url);
                    writer.WriteEndTag("meta");
                }
            }

        }
    }