Wie zum senden der og:Title og:Image og:Description og:url-Infos von C# zu Facebook
Ich habe einen like-button in meine Seite. Klick auf den Button, ich bin versucht, senden Sie den folgenden tags Informationen in der facebook...
<meta property="og:title" content="Title" />
<meta property="og:description" content="Description" />
<meta property="og:url" content="url info" />
<meta property="og:image" content="image url" />
Folgende ist meine Like-Button-Frame
<iframe frameborder="0" scrolling="no" allowtransparency="true"
style="border: none; overflow: hidden; width: 260px; height: 35px;"
src="http://www.facebook.com/plugins/like.php?
href=http://localhost:49334/WebForm1.aspx&send=false&
layout=button_count&width=100&show_faces=false&
action=like&colorscheme=light&font=arial&height=35">
</iframe>
Folgende ist der erste Ansatz, um dynamisch zu behandeln, die Meta-Tags.
var fbTitleTag = new MetaTag
{
AgentPageURL = "/",
MetaTagName = "og:title",
UserSiteName = CurrentAgent.UserSiteName,
MetaTagContent = Request.Cookies.Get("MasterTitle").Value
};
var fbDesc = new MetaTag
{
AgentPageURL = "/",
MetaTagName = "og:description",
UserSiteName = CurrentAgent.UserSiteName,
MetaTagContent = Request.Cookies.Get("MasterDescription").Value
};
var fbUrl = new MetaTag
{
AgentPageURL = "/",
MetaTagName = "og:url",
UserSiteName = CurrentAgent.UserSiteName,
MetaTagContent = Request.Cookies.Get("MasterURL").Value
};
var fbImage = new MetaTag
{
AgentPageURL = "/",
MetaTagName = "og:image",
UserSiteName = CurrentAgent.UserSiteName,
MetaTagContent = Request.Cookies.Get("MasterImage").Value
};
var tags = new MetaTagCollection { fbTitleTag, fbDesc, fbUrl, fbImage };
Literal ltMetaTags = null;
ltMetaTags = (Literal)this.Master.FindControl("ltMetaTags");
MetaTags(tags, "wsws", "/", ltMetaTags, true);
public static void MetaTags(MetaTagCollection MetaTags, string name, string strRawURL, Literal ltlMetaHolders, bool isProp)
{
// ltlMetaHolders.Text = "";
foreach (AgentMetaTag oAgentMetaTag in agentMetaTags)
{
if (string.Compare(strRawURL, oAgentMetaTag.AgentPageURL, true) == 0)
{
if (oAgentMetaTag.MetaTagName.ToLower().Trim() != "footer" && oAgentMetaTag.MetaTagName.ToLower().Trim() != "title")
{
if (oAgentMetaTag.MetaTagName.ToLower().Trim() == "fbtitle")
oAgentMetaTag.MetaTagName = "title";
RenderMetaTagByContentName(ltlMetaHolders, oAgentMetaTag.MetaTagName, oAgentMetaTag.MetaTagContent, isProp);
}
}
}
}
public static void RenderMetaTagByContentName(Literal ltlMetaHolder, string contentName, string content, bool isProp)
{
var metaTagFromat = isProp ? "<meta property=\"{0}\" content=\"{1}\" />" : "<meta name=\"{0}\" content=\"{1}\" /> ";
ltlMetaHolder.Text += string.Format(metaTagFromat, contentName, content);
}
Folgenden wird der zweite Ansatz, um dynamisch zu behandeln, die Meta-Tags.
HtmlMeta tag = new HtmlMeta();
tag.Attributes.Add("property", "og:title");
tag.Content = "Title";
Page.Header.Controls.Add(tag);
HtmlMeta tag1 = new HtmlMeta();
tag1.Attributes.Add("property", "og:description");
tag1.Content = "Desc";
Page.Header.Controls.Add(tag1);
HtmlMeta tagurl = new HtmlMeta();
tagurl.Attributes.Add("property", "og:url");
tagurl.Content = "URL info";
Page.Header.Controls.Add(tagurl);
HtmlMeta tagimg = new HtmlMeta();
tagimg.Attributes.Add("property", "og:img");
tagimg.Content = "Image URL";
Page.Header.Controls.Add(tagimg);
Schließlich ist es das rendering und die meta-tags wie unten..
<meta property="og:title" content="Title" />
<meta property="og:description" content="Description" />
<meta property="og:url" content="url info" />
<meta property="og:image" content="image url" />
Nun den moment, als ich Sie auf die Like button
es sendet nur die url. und nicht sendet, die Description/Image/Title
.
Ich bin mit dem link "http://developers.facebook.com/tools/debug". Er sagt, dass die Description/Image/Title
fehlt.
Irgendwelche Ideen?
InformationsquelleAutor | 2012-06-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie nicht senden Sie die Metadaten an Facebook, Facebook ruft die Metadaten aus der HTML-Seite wird beim laden der Seite. Versuchen Sie Ihre URL mit dem folgenden tool:
Es wird Ihnen zeigen, was Facebook sieht (es ist der "Geschabt URL" - link am unteren Rand den debug-tool, das Sie derzeit verwenden).
Wenn es nicht die Metadaten-tags dann Facebook sieht Sie nicht, und es wird nicht fügen Sie die Metadaten Ihrer Open-Graph-Objekt. Wenn das der Fall ist, dann können Sie nicht hinzufügen die Metadaten richtig zu HTML.
Aber sehen Sie Metadaten in die geschabt URL? Sie sind mit dem Facebook-debug-tool, aber Sie haben nicht angegeben, was Sie sehen in den Inhalten, die Facebook Kratzer von Ihrem URL.
Ich kann nicht sehen, die meta-tags.
In diesem Fall müssen Sie, um herauszufinden, warum die meta-tags werden nicht Hinzugefügt, um die HTML. Sie erstellen einen string mit dem HTML-meta-tags, aber wo sind Sie, indem Sie Sie auf das HTML selbst? Ist das richtig funktioniert?
ABER ich bin in der Lage, um zu sehen, die meta-tags im Seiten-Quelltext Anzeigen. Ich mit der rechten Maustaste der Seite, und überprüft die Seite, Quelltext Anzeigen und es zeigt. Warum nicht Facebook zeigt nicht das gleiche?
InformationsquelleAutor Simeon Visser
Der zweite Ansatz sieht richtig aus. Die Frage ist, wo hast du Platz, dass code? Es sollte aufgerufen werden, auf Page_Load.
Klick auf den Like-button sendet nicht die og:xxxx-Informationen. Ihre Seite sollte schon haben diese og:xxxx meta-tags von Anfang an.
InformationsquelleAutor rikitikitik
Verwenden Sie MVC ASP.NET?
Können Sie versuchen, die meta-tags im Layout.cshtml als
dann tags Werte in separate Seite MyPage.cshtml
InformationsquelleAutor Kate