How to force facebookexternalhit to reaccess? - facebook

I'm playing with facebook links via posting them. On the frist time a access from a user agent containing "facebookexternalhit" will visit your site and look for some meta tags.
So far so good that works. But if I try to repost the link no furure calls happens. How can I trigger to let facebook read the page again?
Are there some API calls I can use to trigger an update?

in the documentation for the Like Button it says:
When does Facebook scrape my page?
Facebook needs to scrape your page to know how to display it around
the site.
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 user agent of the scraper is: "facebookexternalhit/1.1
(+http://www.facebook.com/externalhit_uatext.php)"
The Linter is now known as the Facebook Debugger and when you use it for a url, it will clear the facebook cache for the same url and will then cache the new result.

One trick you can use is to simply append a "random" GET parameter to the URL that you're sharing. It won't have any effect on the page's content, but will cause Facebook's scraper bot to reaccess your site.
Original URLs:
http://example.com
http://example.com?param=1
New URLs that will force a "reaccess":
http://example.com?cache_buster=784932789532
http://example.com?param=1&cache_buster=784932789532

Related

Move facebook likes from one url to another

Over time I have built up a number of facebook likes on page = http://www.andy-howard.com/verticalAndHorizontalAlignment/index.html
But I need to convert this page to a php script (to be content manageable). Most likely it will be = http://www.andy-howard.com/code-help.php?id=143
Is there a way I can transfer my existing facebook likes to the new url?
You can’t transfer likes from one URL to another.
Only thing you can do, is make Facebook “believe” that the URL is still the old one – by setting the og:url meta tag in your new pages to the old URLs.
Facebook will use that value as the canoncial URL to identify this Open Graph object and to fetch the Open Graph information from, so you will have to see to it that those old URLs are
still available for the FB scraper to visit,
give it the OG info it is looking for, and
that “normal” visitors are redirected to the new URL, should Facebook link them to the old one
How to detect that the FB scraper is requesting your page, is described here: https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo
I don't think there is a way to transfer likes from one url to another. Facebook like plugin is designed so that you can be on one page while actually liking completely other page (i.e. url). If that likes really matter, you can save the old url in database for each content and continue collecting likes for that url and just redirect visitors from that url to the new one.

Reset facebook like url for pages

We've had few pages on our site which were open only for signed-in users. However, the urls of these pages were shared on facebook and whenever facebook visited these pages it got redirected to common page which is shown for non signed-in users.
Now, we have opened these pages for all and implemented like button on these pages. And whenever someone likes one page it gets reflected on other pages as well, I am assuming this is because facebook internally still thinks all point to same url.
However, I am setting the href attribute to these pages, still it doesn't work.
Is there a way where I can reset the counter for these pages and make facebook treat these as new pages? I did try passing few GET params, still it shows old counter
Enter the URLs into this Facebook Lint form (or make requests to this page with the proper parameters from an application) and it will clear Facebook's cache of those pages.
https://developers.facebook.com/tools/debug
I figured it out. I just had to make facebook re-crawl these pages again. I could have waited for 24hrs, which is the frequency with which facebook crawls pages. I chose to use facebook linter, which makes facebook query the url immediately
http://developers.facebook.com/tools/debug

Facebook open graph url redirect issue

I am trying use open graph API to publish an action. URL that I provide as part of meta data property og:url can be accessed by authenticated users only. Facebook is trying to scrape the URL and is ending up with a sign_in page due to a 302 redirect.
Do I have to construct a page just for facebook scraping with meta tags in it? Isn't this url linked to the content published on facebook?
If you want your articles to be sharable or do any SEO, you shouldn't be using 302 redirects. Bots will only see the content from the destination of the redirect.
You want to have just one URL for each piece of content. If an unauthenticated user, the Facebook Scraper, or Googlebot visits that URL, you want it to see all your Meta tags and some teaser content.
If the user isn't authenticated, use a server-side scripting language to display a register/sign_in dialog instead of the premium content. If the user is authenticated, then you show them the full content.
This is better even from a UX perspective: Say I follow the link from Facebook and register. When I sign in, how are you going to get me back to the content I wanted to see in the first place?

"URL is unreachable" error for Facebook comments box being cached?

Our website uses the Facebook Comments Box plugin. We include the comments box on our staging site that is behind our firewall, which means Facebook can't access it and generates the "URL is unreachable" error. This I understand.
However, once a page is published, and is reachable by Facebook, the error is still displayed. This can be easily fixed by clicking on the debug link provided along with the error, but my content editors don't want to have to do this every time, and they sometimes forget.
It seems like the reachable status is cached and reset once you use the debugger. Can anyone think of another explanation?
I suppose I could omit the Facebook comments box from the staging site, but would prefer not to. Any other ideas?
In the documentation of the Like Button they explain when the page is being scraped :
When does Facebook scrape my page?
Facebook needs to scrape your page to know how to display it around
the site.
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 user agent of the scraper is: "facebookexternalhit/1.1
(+http://www.facebook.com/externalhit_uatext.php)"
Here are three options:
You can call the debugger by issuing a simple http request, you can do that from the server when you publish your article (or what ever you're publishing), you don't have to use the debugger tool.
You can check the user agent string for requests and if it's the facebook scraper allow it so that it can cache the page.
You can use different urls for production and staging, that way the cache of the staging pages won't matter in production.

Facebook Share doesn't pick up title / description meta tags that are changed after page load

Apparently Facebook Share doesn't pick up the title / description meta tags that are changed (via JavaScript) after the page load. It basically use the meta tags that are available upon load.
This is a simple example.
The link will change the title / description meta tags upon click. You can confirm that using Firebug.
Click the f|Share button: Facebook still always shows "A title that is available upon page load." and "A description that is available upon page load."
Anybody knows how to fix this?
This is a quote from Facebook. They scrape the page's meta tags when someone shares that page, and every 24 hours onwards (and not on page-load as you suggested). If you change the meta tags, you need to get FB to "lint" your page again using the URL Linter.
When does Facebook scrape my page?
Facebook needs to scrape your page to know how to display it around the site.
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.
Source
Because the facebook server hits the URL you submit and looks for meta tags. It will always default to the original tags.
I assume that Facebook servers do not execute javascript when they scrape your page.
You could use server-side logic to detect the Facebook user agent and modify the outputted HTML accordingly.
According to the bottom of this page ( http://developers.facebook.com/docs/opengraph/ ), the user agent is currently:
facebookexternalhit/1.0
Its none of Facebook business. They just provide an api for it. And api takes meta tags as parameter. So you set your meta tags to facebook sharing.