Firstly, I will give my hypothesis: if the Facebook URL Scraper tried to clear your page and couldn’t access it (for example, if it was waiting for moderation, and the Facebook Scraper bot was redirected to the "login" page), social plugins, similar to the Like button and comments will not work because Facebook considers the URL to be “unavailable”. It takes 24 hours for Facebook to try to clear the page again - until then, Facebook will consider it inaccessible.
Here, Facebook talks about how often pages get cleaned and how to get a scratch:
Facebook resets your page every 24 hours to keep your properties up to date. The page is also cleared when the administrator for the Open Graph page clicks the Like button and when the URL is entered into the Facebook Linter URL. Facebook monitors the 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 scratch your page every 24 hours.
Please note that the Facebook Linter URL has been renamed to the Facebook object debugger .
I may be wrong about the underlying problem. I will give you my experience, and you can decide.
Our site is a collection of blogs, and all blog posts have a “like” button generated with the same code (except for the URL you like). By default, all blog posts are saved in a draft state and are not available if you are not logged in. If an anonymous user tries to visit a “draft” blog post, he will be redirected to the login page.
A few months ago, we had a problem with the "How" button, although the error appeared a little differently: we got a "URL unavailable" when we clicked the Favorites button. This happened only on messages that had “Like” buttons and were not immediately published (for example, they were saved in the “Draft” state). I thought this was fixed when I changed the Project view to not display Facebook social plugins.
However, I noticed that from time to time, if you click the “Like” button on a specific post, the “Like” pop-up window will flash for a moment on the screen, and then disappear, the action ends. Different behavior, the same problem: the "Like" button does not work.
At the same time, the Like buttons on every other post worked just fine! I checked this and then returned to one post that I couldn’t “love”. Same behavior: popup appears and disappears, no “Like”.
I used the Chrome developer tools to see what HTTP requests were made by comparing the request / response for a working “like” with a “like” that didn't work. The Like button makes an HTTP POST request at http://www.facebook.com/plugins/like/connect and returns some JavaScript. As far as I could tell, the HTTP POST request was identical between the working and non-working buttons, but the answer was different. The following is a javascript response to work like, and then a javascript answer for something like this didn't work:
for (;;);{"__ar":1,"payload":null,"jsmods":{"require":[["Plugin","connect",[],["http:\/\/www.hslda.org\/cms\/?q=blog\u00252Fpeeking-through-fence","10151028997762924"]]]}} for (;;);{"__ar":1,"payload":null,"jsmods":{"require":[["Plugin","disconnect",[],["http:\/\/www.hslda.org\/cms\/?q=blog\u00252Fpoem-just-you"]]]}}
I note two differences: the working version is “connect”, while the non-working version is “disconnected”, and the working version has an additional parameter that looks like an identifier. I assume its identifier for this particular type event.
I did a few google and could not find the final answer. Trying to debug this, I used the Facebook Object Debugger . He found some “button reminders” and “Graph opening warnings” that should be fixed, but I don’t think this is a problem because they were the same for URLs with working buttons and a URL with a similar button that did not work.
So, I decided to go to the Facebook Social Plugin page for the Like button). I went to the URL of an unattractive blog post and tried to like it. It worked. I thought, is the same button on the page still broken? I didn’t like it because Id already liked it. So I asked a colleague to try and liked the post, and it worked for him. Then I had my colleague, unlike this post, I refused it (so we didn’t like it again), and then I tried to like it again using a similar button on the blog. It worked.
So, it seems that as soon as I “forced” the page to clear again, it started working. But it’s also possible that forcing, similar to the Like page, also broke something free ... not sure.