Skip to content

Instantly share code, notes, and snippets.

@FrostyX
Last active February 9, 2022 11:15
Show Gist options
  • Star 74 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save FrostyX/81d58222d1e835e24013 to your computer and use it in GitHub Desktop.
Save FrostyX/81d58222d1e835e24013 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');
?>
@luiscastillocr
Copy link

yes, this is what we are using right now in our production environment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment