Недавно обновлен og: изображение веб-сайта. Сайт содержит более 100 страниц, каждый из которых содержит свое собственное изображение og:. Как я могу спросить или заставить facebook повторно очистить все страницы, чтобы изображение обновилось? Использование средства отладки facebook будет слишком утомительной задачей. Пока facebook не очистит сайт, я не смогу представить коллекцию для приложения.
Попросите facebook перерисовать URL
Ответ 1
У вас есть две альтернативы в вашей ситуации
-
В соответствии с циклом ответа ysrb через список ваших URL-адресов с помощью инструмента Open Debugger отладки
-
Или подождите терпеливо в течение 30 дней, пока Facebook не перечеркивает ваши страницы, как говорится в документации здесь
Почему и когда Facebook очищает мой сайт?
Facebook должен очистить ссылки, общие для Facebook, чтобы узнать, что связать информацию предварительного просмотра, чтобы показывать на Facebook.com или на Facebook для iOS и Android. Это происходит каждые 30 дней, чтобы обеспечить актуальность свойств. Связанная страница также очищается, когда URL-адрес вводится в Инструмент отладки.
Facebook наблюдает за заголовками кеша на ваших URL-адресах - он будет смотреть на "Истекает" и "Кэш-контроль" в порядке предпочтения. Однако, даже если вы укажете более длительное время, Facebook будет царапать вашу страницу каждые 30 дней.
Ответ 2
Вы можете принудительно повторно очистить через API, как описано здесь: https://developers.facebook.com/docs/opengraph/using-objects/#update:
POST /?id={object-instance-id or object-url}&scrape=true
(Но если вы не имеете реальный список затронутых URL-адресов, это своего рода спорным. Тогда вы только можете ждать, пока это не произойдет автоматически, я думаю.)
Ответ 3
$config = array(
"appId" => 'APP_ID',
"secret" => 'APP_SECRET');
$fb = new Facebook($config);
$r=$fb->api('/','POST',array(
'id'=>PAGE_URL,
'scrape'=>'true'
));
Ответ 4
Помните, что Facebook требует передачи параметров через POST
. Facebook просто игнорирует запросы GET
.
Вот код в С#.
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(
"https://graph.facebook.com/?id="
+ HttpUtility.UrlEncode("http://www.example.com/index.html")
+ "&scrape=true");
httpRequest.Method = "POST";
using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
{
using (Stream responsestream = httpResponse.GetResponseStream())
{
if (responsestream != null)
{
using (StreamReader bodyreader = new StreamReader(responsestream))
{
string fbResp = bodyreader.ReadToEnd();
}
}
}
}
Ответ 5
curl --insecure " https://graph.facebook.com/?id=[YOUR-URL-TO-SCRAPE]&scrape=true"
curl должен быть ssl способным (поскольку он https://graph...)
Ответ 6
Вы можете попробовать цикл из списка URL-адреса и сделать
curl "http://developers.facebook.com/tools/debug/og/object?q=$url"