Emne

Tving en Facebook Open Graph-oppdatering av hurtigbufferen

Du kan tvinge en Facebook Open Graph-oppdatering av hurtigbufferen, fordi Facebook — alene blant de store plattformene — tilbyr en programmatisk måte å be om dette på. Du kan enten bruke Sharing Debugger-knappen Scrape Again for en enkelt lenke, eller kalle Graph API-ens scrape-endepunkt med et app-tilgangstoken. Det finnes ingen måte å tvinge WhatsApp, LinkedIn eller X til dette: de publiserer ingen slik API, for noen.

Det som snubler alle

Meta cacher en lenkeforhåndsvisning nøklet på side-URL-en og lagrer sin egen kopi av bildet. Den leser ikke siden din på nytt for å oppdage at og:image nå peker et annet sted.

Så denne arbeidsflyten feiler, og det er den de fleste prøver:

Endre forsidebildet → og:image-URL-en er ny → anta at Facebook vil plukke den opp → det gjør den ikke.

En ny bilde-URL bryter bilde-CDN-en. Den gjør ingenting med Metas side-nøklede cache. For å flytte Facebook må du fortelle Meta at siden har endret seg.

Cache Nøklet på Tømmes av
Side-cachen din / CDN side-URL-en å tømme den
Metas lenkeforhåndsvisnings-cache side-URL-en skrape-endepunktet eller Sharing Debugger
Metas kopi av bildet bilde-URL-en en ny bilde-URL
Bilde-CDN-en din bilde-URL-en en ny bilde-URL

Alternativ 1 — Sharing Debugger (én side, manuelt)

Åpne developers.facebook.com/tools/debug, lim inn side-URL-en, og trykk Scrape Again. Meta henter siden på nytt og bygger opp sin mellomlagrede forhåndsvisning.

Det er også den beste gratisvalidatoren du har, fordi den rapporterer hva Meta faktisk fant, i stedet for det du håpet var der: manglende eller dupliserte og:image, utilgjengelige bilder, ustøttede formater. To ting den ikke gjør: den kan ikke påvirke WhatsApp (separat mellomlager, i mottakerens app), og den er ikke et katalogverktøy — den håndterer én URL om gangen, med ratebegrensning, og med et menneske foran seg.

Alternativ 2 — Graph API (dette er det en plugin kaller)

Det programmatiske motstykket som FastOG bruker, er en POST til Graph API med scrape=true:

bash
curl -X POST \
  "https://graph.facebook.com/v21.0/?id=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=""))' 'https://your-store.com/product/example')&scrape=true&access_token=${APP_ID}|${APP_SECRET}"

Fire detaljer som har betydning:

  • id er side-URL-en, ikke bilde-URL-en. Meta nøkler cachen sin på siden, så å pinge bildeadressen oppdaterer ingenting.
  • En token er påkrevd — Meta har krevd dette på dette endepunktet siden oktober 2017. En app access token i formen {app_id}|{app_secret} er tilstrekkelig, og den krever ingen brukerinnlogging, noe som er akkurat det som gjør kallet mulig fra en bakgrunnsjobb.
  • Graph API-versjoner flytter seg. FastOG låser en testet Graph API-versjon; sjekk Metas nåværende dokumentasjon og changelog før du låser en versjon i din egen kode.
  • Behandle det som best-effort. Meta rate-limiter scrape-kall, og et avslag betyr bare at Facebook oppdaterer på sin egen tidsplan i stedet for umiddelbart — taggene på siden din er allerede korrekte.

Siden det er rate-limitet, skal du ikke fyre det av inline ved hver lagring av en stor katalog. Kø det, og de-dupliser etter URL, slik at gjentatte lagringer av samme uendrede produkt ikke bruker opp rate limit.

Alternativ 3 — en plugin som gjør det for deg

Plugins som markedsføres som «Open Graph cache refresh» faller i to grupper, og bare én av dem kan fikse Facebook:

Mekanisme Hva den tømmer Fikser en utdatert Facebook-forhåndsvisning?
Legger til en endrende query string på bilde-URL-en (?v=timestamp) bildet ditt på CDN Nei — Metas cache er nøklet på siden
Kaller scrape-endepunktet for side-URL-en Metas forhåndsvisnings-cache Ja

Før du installerer en, finn ut hvilken type det er. En tidsstempelparameter er en reell fiks for et utdatert bilde og en ikke-fiks for et utdatert Facebook-kort.

FastOG for WooCommerce gjør det andre, og du konfigurerer ingenting. Pluginen registrerer WooCommerces native produkt-webhooks, så når du lagrer et produkt sendes en Meta-omskraping for produktets permalink — i kø, de-duplisert innenfor et kort tidsvindu, og best-effort av design så et avslag aldri feiler lagringen. Det gjelder produktsider (product.created / product.updated); kategori- og bloggredigeringer dekkes ikke.

Bildesiden håndteres separat, og annerledes enn hos alle konkurrenter: fordi en FastOG-cover-URL inneholder verdiene som produserte den, lager redigering av pris eller bilde en ny cover-URL. Meta kan ikke tjene opp et bilde hvis adresse ikke lenger eksisterer.

Der Facebook ikke er nok

Plattform Kan du tvinge en oppdatering? Hva som faktisk skjer
Facebook Ja — debugger eller scrape=true Ber om en ny skraping; spredningstiden varierer
WhatsApp Nei Forhåndsvisningen er bufret i mottakerens app; ingen API finnes
LinkedIn Ingen dokumentert programmatisk API Leser på nytt etter egen tidsplan; ingen offentlig tidsgaranti gis her
X / Twitter Ingen dokumentert programmatisk API Leser på nytt etter egen tidsplan; ingen offentlig tidsgaranti gis her
Slack, Discord Nei Kortvarige cacher som tømmes av seg selv i løpet av minutter til timer

Hvis en forhåndsvisning er utdatert på WhatsApp, er svaret ikke et Facebook-verktøy — det er å få butikksiden riktig slik at neste lesing blir korrekt.

Når det fortsatt viser det gamle bildet etter en vellykket skraping

Gå gjennom denne listen, i rekkefølge:

  1. Serverer siden fortsatt den gamle taggen? curl -s https://your-store.com/product/example | grep -i 'og:image' — en bufret HTML-side med en utdatert og:image gjør hele skrapingen verdiløs. Tøm sidebufferen.
  2. Skriver siden ut mer enn én og:image? Hvis to plugins hver sender ut én, tar crawleren den første den leser. Tell dem.
  3. Er bildet tilgjengelig, og ikke blokkert? curl -I <image-url> skal returnere 200 med en bilde-Content-Type. Sosiale crawlerer respekterer robots.txt, så et bilde på en Disallow:-sti feiler på en måte som ligner på en korrupt fil — og curl vil aldri reprodusere det, fordi curl ignorerer robots.txt.
  4. Endret bilde-URL-en seg faktisk? Hvis den ikke gjorde det, har ikke innholdet endret seg heller — sjekk at pris-/fotoredigeringen nådde kilden kortet tegnes fra.
  5. Sjekk debuggeren igjen. Hvis den nå rapporterer det nye bildet og Facebook fortsatt viser det gamle kortet, ser du på Facebooks egen propagering, ikke på taggene dine.

FAQ

Finnes det et offisielt API for å tømme Facebooks Open Graph-buffer?

FastOG bruker scrape-endepunktet (POST https://graph.facebook.com/{version}/?id={page-url}&scrape=true&access_token={token}). Meta dokumenterer Sharing Debugger og den programmatiske gjennomsøkingsflyten; den nøyaktige endepunktformen og Graph API-versjonen kan endres, så verifiser dem mot Metas gjeldende dokumentasjon før du implementerer det selv.

Trenger Sharing Debugger en app eller en token?

Nei. Det er et offentlig verktøy, og det fungerer for alle offentlige URL-er. Det den derimot ikke kan gjøre, er å kjøre etter en tidsplan eller dekke en katalog.

Vil en ny gjennomsøking koste meg en FastOG-rendering?

Vanligvis ikke. En cover-URL er innholdsavledet, så hvis innholdet ikke endret seg, endret heller ikke URL-en seg, og hentingen er et cache-treff som ikke koster en rendering. Hvis prisen endret seg, endret URL-en seg — det er én ny rendering, og det er den renderingen du ønsket.

Fikser en ny gjennomsøking hos Facebook WhatsApp-forhåndsvisningen min?

Nei. Det er separate cacher. Facebooks debugger er likevel verdt å bruke som en validator — den henter siden på samme måte som WhatsApp vil, og rapporterer hva den fant — men den kan ikke oppdatere WhatsApp.

Hvor lenge beholder Facebook en forhåndsvisning hvis jeg aldri pinger den?

Meta dokumenterer en standard periode for ny gjennomsøking på omtrent 24 timer, men den nøyaktige spredningstiden kan variere. Det er derfor debuggeren og den programmatiske gjennomsøkingsstien finnes.

Må jeg pinge hvert produkt etter en katalogimport?

Det er det køen er til for. Å sende én forespørsel per produkt direkte vil treffe Metas rategrense og gjøre forhandlerens forespørsel tregere; med kø og deduplisering tømmes en katalog-gjennomgang ufarlig.

Hva hvis Meta avviser forespørselen?

Ingenting går i stykker. En avvist eller ratebegrenset ping betyr at Facebook oppdaterer etter sin egen tidsplan i stedet for umiddelbart — taggene på siden er allerede korrekte, og det er derfor kallet er best-effort snarere enn en hard avhengighet.

Prøv gratis – ingen registrering nødvendig

Forhåndsvis og test dynamiske OG-bilder på sekunder.

Åpne den gratis OG-bildetesteren

A BeCaSimulations site