Я хочу сделать плагин, который будет запускать некоторый код PHP, когда кто-то публикует новый вопрос. Вот что я получил сейчас:
<?php
if (!defined('QA_VERSION')) { // don't allow this page to be requested directly from browser
header('Location: ../../');
exit;
}
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
*
* https://gist.github.com/FrostyX/81d58222d1e835e24013
*/
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;
}
}
class qa_event_clear_cache {
public function process_event($event, $userid, $handle, $cookieid, $params) {
/* require_once QA_INCLUDE_DIR.'app/emails.php';
require_once QA_INCLUDE_DIR.'app/format.php';
require_once QA_INCLUDE_DIR.'util/string.php'; */
if ($event == 'q_post') {
$fb = new FacebookDebugger();
//$fb->reload('http://example.com/');
$fb->reload(qa_q_path($params['postid'], $params['title'], true));
} else {
}
}
}
?>
Итак, как вы можете видеть, я пытаюсь добавить код, который очистит кеш общих ресурсов Facebook сразу после публикации вопроса. Я нашел сценарий очистки общего кэша FB на Github, и теперь я хочу реализовать это в плагине Q2A. Я новичок в PHP, так что извините, если мой код глуп.
Или, может быть, есть другой способ сделать это автоматически?
Задача ещё не решена.
Других решений пока нет …