Facebook Open Graph löscht den Cache nicht


174

Ich habe Probleme mit meinen Meta-Tags mit Open Graph. Es scheint, als würde Facebook alte Werte meiner Meta-Tags zwischenspeichern. Alte Werte für Attribute og:titleundog:url werden weiterhin verwendet, obwohl ich sie bereits geändert habe.

Ich habe Lint auf einer Seite meiner Website ausgeführt und Folgendes wurde angezeigt:

Facebook Open Graph Flusen Screenshot

Beachten Sie, dass es für og:titleund zwei Werte og:urlgibt und der letzte vorherrschte. Doch die letzten beiden Einträge sind die alten Einträge , dass ich für diese Website verwendet. Ich verwende derzeit diese Meta-Tags (Sie können überprüfen, ob Sie die HTML-Quelle anzeigen):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

Warum wird Facebook zwischengespeichert og:titleund og:url? Tritt bei jemandem das gleiche Problem auf?


Ich nehme an, das ist wie eine Geschichte? Ich sehe, wie FB das Neueste bekommt titleund urlfür dich (in der Infotabelle), warum also die Mühe machen?
ifaour

Das Problem ist, dass die Facebook-Like-Zählung immer noch für die ALTE og: url ( pinq.dk ) gilt, die bei über 200 liegt, im Gegensatz zur Zählung für pinq.dk/tilbud/landsdaekkende/lissy
Ardee Aram am

und ich denke nicht, dass dies Geschichte ist. Mehr von og: url wird (angeblich) zweimal gesetzt, wobei das letzte das vorherrschende war. Irgendwie wirken sich alte Werte, die bereits aus dem Code entfernt wurden, immer noch auf die Metawerte aus.
Ardee Aram

3
Nun, lesen Sie das hier . Insbesondere der Abschnitt Meta-Tags bearbeiten . Ich bin nicht sicher, ob es verwandt ist, aber es kann helfen. Werde das später überprüfen, sorry Kumpel!
ifaour

2
Das ist es wahrscheinlich. "Sie können die Attribute Ihrer Seite aktualisieren, indem Sie die <meta> -Tags Ihrer Seite aktualisieren. Beachten Sie, dass og: title und og: type nur anfänglich bearbeitet werden können - nachdem Ihre Seite 50 Likes erhalten hat, wird der Titel festgelegt und nachdem Ihre Seite 10.000 Likes erhalten hat Der Typ wird behoben. Diese Eigenschaften werden behoben, um zu vermeiden, dass Benutzer überrascht werden, denen die Seite bereits gefallen hat. Das Ändern der Titel- oder Typ-Tags nach Erreichen dieser Grenzwerte führt zu nichts. Ihre Seite behält den ursprünglichen Titel und Typ bei. " Vielen Dank!
Ardee Aram

Antworten:


304
  1. Gehen Sie zu http://developers.facebook.com/tools/debug
  2. Geben Sie die folgende URL ein fbrefresh=CAN_BE_ANYTHING

Beispiele:

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. Oder besuchen: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

Ich hatte gestern Abend das gleiche Problem und habe diese Lösung von einer Website erhalten.

Facebook speichert Ihr Cache-Miniaturbild. Es wird nicht aktualisiert, selbst wenn Sie das Thumnail / Image von Ihrem Server löschen. Mit Facebook können Sie jedoch mithilfe von aktualisierenfbrefresh

Ich hoffe das hilft.


30
param fbrefresh ist möglicherweise nicht erforderlich, da das Debug-Tool das Objekt ohne es aktualisiert.
alexandru.topliceanu

7
Der Cache wird nur gelöscht, wenn Sie diesen Parameter verwenden.
Umur Kontacı

26
Unwahr, das Hinzufügen dieses Parameters hat keinen Einfluss auf den Betrieb des Debug-Tools - es gibt keinerlei Verweis auf diesen Parameter im Debug-Tool oder
Igy

7
Der Parameter fbrefresh muss nicht verwendet werden, Sie müssen jedoch als Administrator für die FB-App angemeldet sein, der diese Domain gehört, da sonst der Cache nicht aktualisiert wird.
Felipe Brahm

3
Ich kann überprüfen, ob das Hinzufügen des Parameters fbrefresh für mich funktioniert hat. Wenn ich die URL geteilt habe, wurden alte Daten verwendet, obwohl der Debugger die richtigen Daten anzeigt. Aber sobald ich den Debugger mit dem Parameter fbrefresh verwendet habe, haben sogar normale Freigaben die richtigen Daten verwendet.
Eis

82

Die am häufigsten gestellte Frage ist ziemlich veraltet:

Dies sind die einzigen zwei Optionen, die ab November 2014 verwendet werden sollten :

Für Nichtentwickler

  1. Verwenden Sie den FB-Debugger: https://developers.facebook.com/tools/debug/og/object
  2. Fügen Sie die URL ein, die Sie erneut zwischenspeichern möchten. (Stellen Sie sicher, dass Sie dieselbe URL verwenden, die auf Ihrem og: url-Tag enthalten ist.)
  3. Klicken Sie erneut auf die Schaltfläche Scrape-Informationen abrufen

Für Entwickler

  1. Rufen Sie programmgesteuert diese URL an: https://graph.facebook.com/?id=[YOUR_URL_HERE‹&scrape=true (siehe: https://developers.facebook.com/docs/games_payments/takingpayments#scraping )
  2. Stellen Sie sicher, dass das auf dem Kopf auf dieser Seite enthaltene Tag "og: url" mit dem Tag übereinstimmt, den Sie übergeben.
  3. Sie können sogar die JSON-Antwort analysieren, um die Anzahl der Freigaben dieser URL abzurufen.

Zusätzliche Informationen zum Aktualisieren von Bildern

  • Wenn die URL von og: image dieselbe bleibt, sich das Bild jedoch tatsächlich geändert hat, wird es von Facebook-Scrapern nicht aktualisiert oder zwischengespeichert, selbst wenn dies oben beschrieben wird. (Selbst das Übergeben eines? last_update = [TIMESTAMP] am Ende der Bild-URL hat bei mir nicht funktioniert).
  • Die einzige effektive Problemumgehung bestand für mich darin, dem Bild einen neuen Namen zuzuweisen.

Hinweis zu Bild- oder Video-Updates für zuvor veröffentlichte Beiträge:

  • Wenn Sie den Debugger aufrufen, um Änderungen an Ihren og: -Tags Ihrer Seite zu löschen, wird auf allen vorherigen Facebook-Freigaben dieser URL weiterhin das alte Bild / Video angezeigt. Es gibt keine Möglichkeit, alle vorherigen Beiträge zu aktualisieren, und dies ist aus Sicherheitsgründen beabsichtigt. Andernfalls könnte jemand so tun, als hätte ein Benutzer etwas geteilt, was er tatsächlich nicht getan hat.

Es scheint nicht die Anzahl der Freigaben für meine Seite zurückzugeben. Ich habe in diesem Beitrag gelesen: " stackoverflow.com/questions/3581488/… ", dass Sie einen Facebook-Like / Share-Button auf der Seite haben müssen, damit die Ausgabe dieses Endpunkts Informationen enthält.
WillyBurb

Stellen Sie sicher, dass sich die Tags im KOPF und nicht im KÖRPER Ihrer Seite befinden - der Debugger wird Sie davor warnen und sie werden ignoriert (ja, ich weiß, dass Sie dies erwähnt haben, ich wollte nur den Punkt betonen)
Simon_Weaver

@Oriol Esteban haben Sie andere Möglichkeiten zum Aktualisieren von Bildern gefunden?
Petr

3
@Oriol Als ich dies kürzlich versuchte, musste ich einen Beitrag an diese URL senden (gemäß developer.facebook.com/docs/sharing/opengraph/… )
Glen T

1
Irgendwelche Ideen, wie man den Cache zerkratzt, wenn man die URL von og: video ändert ????? Ich habe mein Video geringfügig bearbeitet und die URL geändert, und Facebook zeigt weiterhin die alte Version an! Ich habe den Scratch offensichtlich beim Debuggen gemacht (und es wird dort korrekt angezeigt), aber nicht in der Post! ... das macht mich verrückt!
RayOnAir

19

Wenn Sie viele Seiten haben und diese nicht manuell aktualisieren möchten, können Sie dies automatisch tun.

Nehmen wir an, Sie haben eine Benutzerprofilseite mit Foto:

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

Fügen Sie dies einfach Ihrer Seite hinzu:

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Dadurch wird der Facebook-Cache aktualisiert. Wenn Sie die jQuery-Lösung verwenden, sehen Sie sich "response" in console.log an. Dort finden Sie das Feld "update_time" und weitere nützliche Informationen.


Dies war die einzige konsistente Lösung, die den Bildcache für mich sprengen würde. Verwenden fbrefreshhat nichts für mein Problem getan.
Hellatan

Hallo, ich versuche diese Methode, aber ich erhalte einige Fehler, $ this-> output ('<script type = "text / javascript"> $ (document) .ready (function () {$ .post (" graph .facebook.com ", {id:" '. $ this-> content [' canonical '].' ", scrape: true}, function (response) {console.log (response);});}); < / script> ');
Monsterboy

Ich erhalte den folgenden Fehler Uncaught ReferenceError: $ ist nicht definiert (anonyme Funktion) Jede Hilfe wäre sehr dankbar :)
Monsterboy

@monsterboy $ - Dies ist eine Verknüpfung zur jQuery-Funktion. $ .post () ist dasselbe wie jQuery.post () Um diese Bibliothek zu verwenden, müssen Sie sie zuerst importieren: <script src = " code.jquery.com/jquery-latest.min.js " type = "text / javascript "> </ script>
Zhorzh Alexandr

@ZhorzhAlexandr Danke für deine Antwort, aber ich benutze WordPress und ich habe einen Beitrag, der jeden Tag bearbeitet werden kann. Wie könnte ich dieses Skript jedes Mal verwenden, bevor ich es teile?
Antwan

12

Das OG-Miniaturbild scheint nicht aktualisiert zu werden, selbst wenn die Variable fbrefresh übergeben wird. Um dies zu aktualisieren, ohne auf das automatische Löschen zu warten, müssen Sie den Dateinamen des Miniaturbild-zugeordneten Meta-Tag-Werts ändern und aktualisieren.


Gemäß den anderen Antworten können Sie mithilfe des fbrefreshURL-Parameters eine Aktualisierung erzwingen .
Sam Mussmann

1
@ SamMussmann Es scheint, dass dies nur (wenn es das überhaupt tut) den Cache des OG-Tag-Inhalts aktualisiert und NICHT das tatsächliche Bild, das von der URL des Inhalts gefunden wurde. EG: Sie behalten die OG-Tags bei, ändern jedoch die Bilddatei (wobei der Name beibehalten wird), und das Bild selbst bleibt im Cache. Ich habe keine Möglichkeit gefunden, dies zu löschen, außer wie Seb sagte, müssen Sie den Dateinamen des Bildes ändern.
Nick M

@ Nick M Hast du andere Lösungen gefunden?
Petr

Gelöst. Ich habe es gelöst, indem ich? T = TIMESTAMP zu meiner Bild-URL im PHP-Skript hinzugefügt habe, wo wir Tags generieren. Im Moment funktioniert es.
Petr

Ich habe gerade versucht, die Bilddatei umzubenennen und den Meta-Tag-Wert zu aktualisieren, was auch nicht funktioniert.
Antonio Ooi

7

Ich hatte die gleichen Probleme mit og:image , mehrere Versuche, die Datei umzubenennen oder den FB-Cache zu löschen, funktionierten weder über den Facebook-Debugger noch über ein tatsächliches Konto.

Die neuen Facebook-Richtlinien besagen, dass die Bildgröße 1200 x 630 betragen sollte oder dieses Seitenverhältnis haben sollte. Dies scheint falsch zu sein. Das einzige, was für mich funktioniert hat, war die Verwendung eines Bildes mit quadratischen Abmessungen .

Bearbeiten* Einige Stunden habe ich wieder 1200 x 630 verwendet und es hat magisch funktioniert, es war magisch.

Ich habe die Dateien auch in f * ^ * kfacebook.jpg umbenannt, nicht sicher, ob es geholfen hat, aber es fühlte sich gut an.


6

Grundsätzlich lautet die Antwort Geduld;)

Ich habe heute Morgen den Linter überprüft und og: title und og: url werden korrekt angezeigt, ohne die redundanten Werte. Ich denke, FaceBook löscht seinen Cache automatisch in einem bestimmten Intervall. Ich muss nur warten.

Geben Sie hier die Bildbeschreibung ein


Von Facebook für Entwickler , abläuft Der Objekt - Cache alle 7 Tage, und Facebook wird das Objekt automatisch rescrape beim nächsten verwendet wird .
Venugopal

4

Wir haben gerade darauf gestoßen, wie sich herausstellte, dass wir nicht die richtige URL gefunden haben, da die echte URL eine Abfragezeichenfolge hatte (duh, andere Seite, was einen Bot betrifft).

http://example.com/

! ==

http://example.com/?utm_campaign=foo

Der Linter wird Ihre Seite erneut zwischenspeichern, Sie müssen nicht warten.



4

Ooook, endlich hat es geholfen (ich benutze IP.Board). Was ich tun musste war:

  1. URL von og: image auf meiner Website ändern (Allgemeine Konfiguration).
  2. Versuchen Sie diese Methode mit? Fbrefresh = 1154464gd56

Danke an den Autor für diesen Thread!

BEARBEITEN: Darüber hinaus müssen Sie sich an die Bildanforderungen erinnern. Im Moment (Januar 2013) ist es: - mindestens 200 px in beide Richtungen - maximales Verhältnis 3: 1



3

Eine Sache hinzuzufügen, die URL unterscheidet zwischen Groß- und Kleinschreibung . Beachten Sie, dass:

apps.facebook.com/ HALLO

ist dann in den Augen des Linter anders

apps.facebook.com/ hallo

Stellen Sie sicher, dass Sie die genaue Site-URL verwenden, die in den Entwicklereinstellungen für die App eingegeben wurde. Andernfalls gibt der Linter die Eigenschaften zurück, aktualisiert den Cache jedoch nicht.


3

Es tut mir leid Leute, aber die richtige Antwort lautet:

Es gibt keine narrensichere Möglichkeit, die geöffnete Grafik og: image url mit sofortigem Ergebnis zu aktualisieren. Es wird zwischengespeichert, bis fb aktualisiert wird (Berichten zufolge alle 24 Stunden).

Hier sind Dinge, von denen berichtet wurde, dass sie von anderen funktionieren, aber ich hatte mit keinem von ihnen NULL Erfolg.

  • Wählen Sie "Neue Kratzinformationen abrufen".
  • Ändern des tatsächlichen Bilddateinamens und / oder Löschen des Originals
  • Hinzufügen einer Abfragezeichenfolge zur Bild-URL durch Anhängen eines PHP-TIMESTAMP oder?
  • Hinzufügen der Abfragezeichenfolge "... yoursite.com/?fbrefresh=anything" zur Debugger-Abruf-URL
  • Wählen Sie den Grafik-API-Link unten auf der og dev-Seite
  • Wenn Sie genau sehen, was der Scraper sieht, werden anscheinend keine zwischengespeicherten Scrape-Daten in Echtzeit angefordert. Die zwischengespeicherte Bild-URL wird auch dann angezeigt, wenn die Datei nicht mehr vorhanden ist

Das Überprüfen Ihres Codes ist immer ein Punkt, um zu bestätigen, dass es sich nicht um ein Problem mit dem Browser-Cache oder einem Caching-Dienst handelt. Wenn die Metainformationen in Ihrem Code aktuell sind und Sie alle oben genannten Schritte ausprobiert haben (es sei denn, ein anderer Vorschlag wird verwirklicht), können Sie nur warten .


1

Ich habe herausgefunden, dass bei einem Bild mit 72 dpi der Fehler in der Bildgröße angezeigt wird. Verwenden Sie stattdessen 96 dpi. Hoffe das hilft.


1
  1. Gehen Sie zu http://developers.facebook.com/tools/debug

  2. Fügen Sie die URL der Seite ein und klicken Sie auf Debuggen. Wenn Ihre Website URL-Aliase verwendet, stellen Sie sicher, dass Sie dieselbe URL verwenden, die Facebook für die Seite verwendet, die Sie freigeben (Beispiel: Verwenden Sie in Drupal den Knoten / * -Pfad anstelle des Alias, wenn die Seite über diese URL freigegeben wird).

  3. Klicken Sie im Teil "Freigabe-Vorschau" auf den Link "Im Freigabedialog anzeigen"

Beste Lösung! Vielen Dank
MeV


0

Hatte eine ähnliche Erfahrung. Der Website-Link zeigte einen 404 in der von Facebook generierten Vorschau. Es stellt sich heraus, dass die Metadaten von og: url falsch waren. Wir hatten es bereits vor ein paar Tagen behoben, sahen aber immer noch einen 404 in der Vorschau. Wir haben das Tool unter https://developers.facebook.com/tools/debug/ verwendet und dadurch die Aktualisierung erzwungen (es mussten übrigens keine Parameter angehängt werden). In unserem Fall hat Facebook den Cache nach 24 nicht aktualisiert Stunden, aber das Tool half, es zu erzwingen.


0

Es ist ein Cache, der aktualisiert wird. Das ist es, was der Cache von Zeit zu Zeit tun muss. Das Warten wird also irgendwann funktionieren, aber manchmal müssen Sie das schneller tun. Das Ändern des Dateinamens funktioniert.


Warum also -1? Im wahrsten Sinne des Wortes antwortete niemand auf die einfachste Lösung, um den Dateinamen zu ändern, und es funktioniert tatsächlich nicht wie andere (+/- 5) Antworten, die nicht oder zumindest nicht, aber veraltet sind. Wenn Sie den Dateinamen aus irgendeinem Grund nicht ändern können, hilft Ihnen diese Antwort nicht weiter.
Srneczek

0

Ich hatte auch dieses Problem. Der Scraper zeigt die richtigen Informationen an, aber die Freigabe-URL wurde immer noch mit alten Daten gefüllt.

Die Art und Weise, wie ich das umgehen konnte, bestand darin, die Feed-Methode anstelle der Freigabe zu verwenden und die Daten dann manuell zu füllen (was bei der Freigabemethode nicht verfügbar ist).

Etwas wie das:

shareToFB = () => {
    window.FB.ui({
    method: 'feed',
    link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`,
    name: 'THIS WILL OVERRIDE OG:TITLE TAG',
    description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG',
    caption: 'THIS WILL OVERRIDE THE OG:URL TAG'
  });
};

0

Wirklich einfach zu lösen. Getestet und funktionsfähig. Sie müssen nur eine neue URL generieren, wenn Sie Ihre Meta-Tags aktualisieren. Es ist so einfach wie das Hinzufügen eines "& cacheBuster = 1" zu Ihrer URL. Wenn Sie die Meta-Tags ändern, erhöhen Sie einfach "& cacheBuster = 2".

Ursprüngliche URL

www.example.com

URL, wenn og Meta-Tags aktualisiert werden:

www.example.com?cacheBuster=1

URL, wenn og Meta-Tags erneut aktualisiert werden:

www.example.com?cacheBuster=2

Facebook behandelt jede wie eine neue URL und erhält neue Metadaten.


0

Jahre später und dies ist immer noch ein häufiges Problem, aber es ist nicht immer der Facebook-Cache: Es ist sehr oft menschliches Versagen (lassen Sie mich näher darauf eingehen)

OG: TYPE bewirkt, dass Ihr Bild kratzt:

  1. https://ogp.me/#type_article nicht dasselbe wie https://ogp.me/#type_website

Beachten Sie, dass og: type = website dazu führt, dass alle / Unterseiten / dieser URL "kanonisch" werden. Dies bedeutet, dass Sie Probleme haben werden, Ihre Bilder mit dem Scraper zu aktualisieren, egal was Sie tun.

Betrachten Sie diese "Annahme und häufigen Fehler"

- <meta property="og:type" content="website" />=> https://www.example.org (Eltern)
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="website" />=> https://www.example.org/sub-page/child -2 /
- Ergo:/sub-page/ und /child-2/wird das erbenog:image des Elternteils

Das sind nicht "alle Websites", 1 ist eine Website, die anderen sind Artikel.

Wenn Sie dies tun, wird Facebook denken, dass alle diese kanonisch sind, und es wird das ERSTE og: Bild in alle von ihnen setzen. (Probieren Sie es aus, Sie werden sehen) - Wenn Sie die og: url als Root oder übergeordnete Domain festlegen, haben Sie Facebook mitgeteilt, dass sie alle kanonisch sind. (Es gibt gute Gründe dafür, aber es ist kein Thema)

Betrachten Sie diese Lösung (was die meisten Leute "wirklich wollen")

- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/
- <meta property="og:type" content="article" />=> https://www.example.org/sub-page/child-2/

Wenn Sie das jetzt tun, wird Facebook Ihnen weit weniger Probleme beim Schaben Ihrer NEUEN Bilder bereiten.

Abschließend JA, die Cache-Buster, zufälligen Variablen, sich ändernden URLs und Vorschläge hier können funktionieren, aber sie werden wie "intermittierendes Voodoo" erscheinen, wenn das og:typenicht richtig angegeben ist.

PS: Denken Sie daran, dass ein CDN- oder serverseitiger Cache dem Scraper von Facebook dient, selbst wenn Sie "denken", dass Sie die neueste Version sehen können. (Ich werde keine Zeit damit verbringen, außer darauf hinzuweisen, dass es kolossale Mengen Ihrer Zeit verschwenden wird, wenn es nicht doppelt überprüft wird.)


0

Ich hatte kürzlich ein anderes, aber ähnliches Problem mit Facebook und stellte fest, dass die erwähnte Scraper- / Debug-Seite einfach keine Seite in ihrer Gesamtheit zu lesen scheint. Meine Meta-Eigenschaften für Open Graph befanden sich weiter unten im Kopfbereich, und der Scraper informierte mich ständig darüber, dass die Bildspezifikation nicht korrekt war, und verwendete unabhängig davon eine zwischengespeicherte Version. Ich habe die Open Graph-Tags im Code ganz oben auf der Seite weiter nach oben verschoben, und dann hat jedes Mal alles perfekt funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.