it-swarm.com.de

Facebook Open Graph Error - Abgeleitete Eigenschaft

Ich versuche, das OpenGRaph-Protokoll von Facebook auf meinen Produktseiten zu implementieren.

Auf jeder Seite habe ich dies über dem Kopfabschnitt:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">

Dann habe ich im Kopfbereich:

<meta property="og:title" content="This Page Title"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://www.mywebaddress.com"/>
<meta property="og:image" content="http://www.myimage.jpg"/>
<meta property="og:site_name" content="My Site Name"/>
<meta property="fb:admins" content="10101010101"/>
<meta property="og:email" content="[email protected]"/>
<meta property="og:description" content="Description of my product."/>

Ich habe dann einen Like-Button mit diesem Code:

        <script>(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/all.js#xfbml=1";
        fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));</script>
        <div class="fb-like" data-href="http://thispagesurl" data-send="true" data-width="350" data-show-faces="false"></div>

Meiner Meinung nach scheint alles zu replizieren, was auf der Facebook-Entwicklerseite zu finden ist aber wenn ich "mag", greift Facebook anscheinend nur auf den Seitentitel und die allgemeinen Informationen.

Ich habe versucht, die Seite mit ihrem Object-Debugger zu "debuggen", und ich bekomme folgende Warnungen: 

Inferred Property   The og:url property should be explicitly provided, even if a value can be inferred from other tags.
Inferred Property   The og:title property should be explicitly provided, even if a value can be inferred from other tags.
Inferred Property   The og:image property should be explicitly provided, even if a value can be inferred from other tags.
Inferred Property   The og:locale property should be explicitly provided, even if a value can be inferred from other tags.

Soweit ich das beurteilen kann, habe ich die Anweisungen von Facebook befolgt, habe aber keine Freude. Kann mir jemand sagen, wenn ich etwas falsch mache?

Vielen Dank im Voraus, Dan

38
Dan

Sind diese Tags auf "http://www.mywebaddress.com"? 

Denken Sie daran, dass der Linter dem og: url-Tag folgt, da dieses Tag auf die kanonische URL des Inhalts verweist. Wenn Sie also eine Seite haben, z. "http://mywebaddress.com/article1" mit einem og:url-Tag, das auf "http://mywebaddress.com" verweist, wird Facebook dorthin gehen und dort auch die Tags lesen.

Wenn dies nicht der Fall ist, besteht der häufigste Grund, den ich für scheinbar korrekte Tags festgestellt habe, die vom Linter nicht erkannt werden, darin, dass die Benutzer-Agent-Erkennung anderen Inhalt an den Crawler von Facebook zurückgibt als den Inhalt, den Sie beim manuellen Prüfen sehen

51
Igy

Sie benötigen ein Leerzeichen nach den letzten Anführungszeichen

<meta property="og:url" content="http://www.mywebaddress.com"/>

Sollte sein ... mag dies

<meta property="og:url" content="http://www.mywebaddress.com" />
22
hetster

Es gibt einige Verwirrung über Tonnen von Facebook-Tools und -Dokumentation. Viele Leute verwenden wahrscheinlich das Sharing Debugger -Tool, um ihre OpenGraph-Markierung zu überprüfen: https://developers.facebook.com/tools/debug/sharing/

Es werden jedoch nur die Informationen zu Ihrer Site aus dem Facebook-Cache abgerufen. Dies bedeutet, dass der Sharing Debugger nach dem Ändern des ogp-Markups auf Ihrer Site die alten zwischengespeicherten Daten weiterhin verwendet. Wenn auf dem Facebook-Server keine zwischengespeicherten Daten vorhanden sind, zeigt Ihnen der Sharing Debugger den Fehler an: This URL hasn't been shared on Facebook before.

Die Lösung besteht also in der Verwendung eines anderen Tools - Open Graph Object Debugger: https://developers.facebook.com/tools/debug/og/object/

Es ermöglicht Ihnen, Neue Scrape-Informationen abrufen zu laden und den Facebook-Cache zu aktualisieren:

 Open Graph Object Debugger

Ehrlich gesagt weiß ich nicht, wie ich dieses Tool im Bereich Tools & Support von developer.facebook.com finden kann - ich kann keine Links und Erwähnungen finden. Ich habe nur dieses Tool in meinen Lesezeichen. Das ist Facebook :)


Verwenden Sie 'Eigenschaftsattribute

Ich habe auch bemerkt, dass einige Entwickler das name-Attribut anstelle von property verwenden. Viele Parser werden solche Tags wahrscheinlich korrekt verarbeiten, aber gemäß The Open Graph protocol sollten wir property verwenden, nicht name:

<meta property="og:url" content="http://www.mywebaddress.com"/>

Verwenden Sie vollständige URLs

Die letzte Empfehlung ist die Angabe vollständiger URLs. Beispielsweise beschwert sich Facebook, wenn Sie die relative URL in og:image verwenden. Verwenden Sie also die vollständige:

<meta property="og:image" content="http://www.mywebaddress.com/myimage.jpg"/>
11
Oleg Cherr

Falls es jemandem hilft, hatte ich den gleichen Fehler. Es stellte sich heraus, dass meine Seite seit einiger Zeit nicht mehr von Facebook gelöscht wurde und es war ein alter Fehler. Auf der Seite, auf der das Problem behoben wurde, befand sich erneut ein Button.

4
Anthony Taylor

Es könnte ein paar Leuten helfen, die Schwierigkeiten haben, Facebook dazu zu bringen, Open Graph gut zu lesen ... 

Schauen Sie sich den Quellcode an, der von einem Browser mit Firefox, Chrome oder einem anderen Desktop-Browser generiert wird (viele Handys zeigen den Quellcode nicht an), und stellen Sie sicher, dass vor der Doctype-Zeile oder dem Kopf-Tag keine Leerzeilen angezeigt werden Facebook hat einen kompletten Wutanfall und wirft Spielzeug aus dem Kinderwagen! (Beste Beschreibung!) Entfernen Sie Blank Line - Happy Facebook ... ich brauchte etwa 1,5 - 2 Stunden, um dies zu erkennen!

0
Elliott Rodgers