I've got a website that generates a random quote every time you visit the root page: www.hedbergism.com.
I'm working to add a like button to it and have added all the Open Graph meta tags. I've run it through the Facebook debugger and it reads all my tags fine, says it sees no issues.
What I want to happen is that when someone clicks Like, it will share a link to the page and the description will be the quote they are currently viewing. This is what og:description is set to.
What is actually happening is that they click like, and the like posted to their timeline is from the last time Facebook scraped the page. If I run the page through Facebook debugger, the quote returned there becomes the new quote always shown in the Like page.
So it's almost like Facebook is using it's cached version of og:description instead of what is in the source. Is this how it works or am I doing something wrong?
That's how it works, if you are constantly changing it everyday then you would need to get the scraper to re-scrape the page.
Facebook scrapes your page every 24 hours to ensure the properties are up to date. The page is also scraped when an admin for the Open Graph page clicks the Like button and when the URL is entered into the Facebook URL Linter. Facebook observes cache headers on your URLs - it will look at "Expires" and "Cache-Control" in order of preference. However, even if you specify a longer time, Facebook will scrape your page every 24 hours.
The way Facebook has made it is that each URL is an object and objects don't dynamically change.