Skip to content

Instantly share code, notes, and snippets.

@fatihtoprak
Forked from FrostyX/FacebookDebugger.php
Created January 20, 2018 17:54
Show Gist options
  • Save fatihtoprak/9f39935e629909997657dfa2ff73e2a5 to your computer and use it in GitHub Desktop.
Save fatihtoprak/9f39935e629909997657dfa2ff73e2a5 to your computer and use it in GitHub Desktop.
Facebook API - Force facebook to reload cache from your website
<?php
class FacebookDebugger
{
/*
* https://developers.facebook.com/docs/opengraph/using-objects
*
* Updating Objects
*
* When an action is published, or a Like button pointing to the object clicked,
* Facebook will 'scrape' the HTML page of the object and read the meta tags.
* The object scrape also occurs when:
*
* - Every 7 days after the first scrape
*
* - The object URL is input in the Object Debugger
* http://developers.facebook.com/tools/debug
*
* - When an app triggers a scrape using an API endpoint
* This Graph API endpoint is simply a call to:
*
* POST /?id={object-instance-id or object-url}&scrape=true
*/
public function reload($url)
{
$graph = 'https://graph.facebook.com/';
$post = 'id='.urlencode($url).'&scrape=true';
return $this->send_post($graph, $post);
}
private function send_post($url, $post)
{
$r = curl_init();
curl_setopt($r, CURLOPT_URL, $url);
curl_setopt($r, CURLOPT_POST, 1);
curl_setopt($r, CURLOPT_POSTFIELDS, $post);
curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($r, CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($r);
curl_close($r);
return $data;
}
}
?>
<?php
$fb = new FacebookDebugger();
$fb->reload('http://example.com/');
$fb->reload('http://example.com/foo');
$fb->reload('http://example.com/bar');
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment