Comment envoyer de l'og:Title og:Image og:Description de l'og:url de l'info à partir de C# pour Facebook
J'ai un bouton "like" ma page". En cliquant sur le Bouton, je suis en train d'envoyer les balises suivantes de l'information dans l'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" />
Qui suit est mon Bouton Like Cadre
<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>
Suivante est la première Approche pour gérer dynamiquement les Balises Meta.
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);
}
Qui suit est la deuxième Approche pour gérer dynamiquement les Balises Meta.
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);
C'est finalement rendu les balises meta comme ci-dessous..
<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" />
Maintenant le moment où je clique sur le Like button
il envoie seulement l'url. et ne pas envoyer le Description/Image/Title
.
Je suis en utilisant le lien "http://developers.facebook.com/tools/debug". Il est dit que la Description/Image/Title
est manquant.
Des Idées?
OriginalL'auteur | 2012-06-08
Vous devez vous connecter pour publier un commentaire.
Vous n'envoyez pas les métadonnées à Facebook, Facebook récupère les métadonnées de la page HTML lors du chargement de la page. Essayez d'afficher votre URL avec l'outil suivant:
Il va vous montrer ce que Facebook voit (c'est la "Raclée URL" lien au bas de l'outil de débogage que vous utilisez en ce moment).
Si elle ne comprend pas les balises de métadonnées puis Facebook ne les voit pas et il ne sera pas ajouter des métadonnées à son Open Graph de l'objet. Si c'est le cas, alors vous pourriez ne pas être en ajoutant des métadonnées correctement le HTML.
Mais ne voyez-vous des métadonnées dans les gratté URL? Vous utilisez Facebook outil de débogage, mais vous n'avez pas indiqué ce que vous voyez dans le contenu que Facebook éraflures de votre URL.
Je ne peux pas voir les balises meta.
Dans ce cas, vous avez besoin de comprendre pourquoi les balises meta ne sont pas ajoutés à la page HTML. Vous êtes à la création d'une chaîne de caractères avec les balises HTML meta mais où en êtes-vous de les ajouter à la page HTML elle-même? Est que le fait de travailler correctement?
MAIS je suis capable de voir les balises meta dans la Page d'Affichage de la source. J'ai cliqué avec le bouton droit de la page et vérifié la Page d'Affichage de la source et il montre. Pourquoi ne pas Facebook n'affiche pas le même?
OriginalL'auteur Simeon Visser
La deuxième approche semble correct. La question est, où êtes-vous place du code? Elle doit être appelée sur Page_Load.
Cliquant sur le bouton j'Aime n'envoie pas de l'og:xxxx de l'information. Votre page doit déjà avoir ces og:xxxx balises meta dès le début.
OriginalL'auteur rikitikitik
Utilisez-vous MVC ASP.NET?
Vous pouvez essayer de définir les méta-balises de Mise en page.cshtml comme
puis de définir les balises de valeurs dans une page séparée, MyPage.cshtml
OriginalL'auteur Kate