Я организовал конкурс, конкурсантам предлагается поделиться своими результатами на Facebook.
У меня есть следующая кнопка, чтобы поделиться результатами:
print('<a class="facebook stemspeler" style="color:#eec920; margin-right:15px;" target="_blank" onclick="return !window.open(this.href, \'Facebook\', \'width=1200,height=300\')" href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.***.com%2Fallstars&picture=http%3A%2F%2Fwww.***.com%2Ftypo.php?id='.$makeUniq.'&title=tet&caption=test"e=test&description=test">Share</a>');
$ MakeUniq гарантирует, что facebook извлекает результаты вместо того, чтобы кэшировать результаты в первый раз (когда ссылка остается неизменной, она кэшируется, теперь это не так, поскольку ссылка изменяет каждый запрос).
Typo.php — это файл, в котором находится изображение. Он принимает стандартный шаблон и преобразует входные данные конкурса в наложение изображения.
<?php
session_start();
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// Output to browser
header('Content-Type: image/png');
// Create a 300x150 image
//WHITE BACKGROUND COLOR
$im = imagecreatetruecolor(1000, 1000);
$im = imagecreatefrompng("images/test.png");
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
$test = imagecolorallocate($im, 255, 255, 0);
// Set the background to be white
imagefilledrectangle($im, 0, 0, 900, 990, $test);
// Path to our font file
$font = 'fonts/DINPro-Medium.ttf';
$fontSize = 24;
$angle = 0;
$x = 80;
$y = 150;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, ' : n');
$x = 80;
$y = 200;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, 'k : ');$x = 80;
$y = 250;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, 'Ler :n');$x = 80;
$y = 300;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, 'Mouwer : ');
$x = 80;
$y = 350;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, 'Rwer n');
$x = 80;
$y = 400;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, 'Rechtk : ');
$x = 80;
$y = 450;
// Write it
imagettftext($im, $fontSize, $angle, $x, $y, $white, $font, 'Cir : ');
imagepng($im);
imagedestroy($im);
?>
До этого момента все работает так, как должно быть.
Проблема в том, что при открытии функции общего доступа к фейсбуку Facebook продолжает показывать изображение в виде эскиза, а не большого изображения.
И результат, к которому я стремлюсь, это большое изображение:
Я пытался изменить разрешение много раз, и в Интернете есть несколько публикаций, которые близко описывают эту проблему.
У кого-нибудь есть идеи, как я мог решить эту проблему?
Заранее спасибо!
Вы можете попытаться указать эти элементы OG:
og:image:width
og:image:height
Эти теги помогают сканерам определить размер изображения перед его загрузкой. Возможно, вы получаете меньший предварительный просмотр изображения, потому что сканер сначала не получил нужный размер, а теперь вы получаете предварительный просмотр из кэша.
РЕДАКТИРОВАТЬ:
Конечно, вы должны быть уверены, что используете изображение размером не менее 1200 x 630 пикселей.
Рекомендуемый размер изображения для общей ссылки на Facebook — 1200×630. Если изображение слишком маленькое, Facebook обрежет его по центру и покажет только эскиз изображения. Я считаю, что минимальный размер — 600х315, но результат может быть не таким хорошим на устройствах с высоким разрешением. Если вы хотите, чтобы он выглядел хорошо и отображал полноразмерную картинку на всех устройствах, используйте картинки 1200x630px.
Вы можете найти ссылки на эти лучшие практики
Вот.
РЕДАКТИРОВАТЬ:
Ваша проблема может быть связана с тем, что сканер Facebook кэширует информацию, которую он сканирует, поэтому ваша старая фотография может все еще использоваться FB, даже если вы исправили ее разрешение. Не забудьте пойти Вот, заставить сканер Facebook повторно сканировать ваш веб-сайт и получать новые данные или просто очистить кэш для определенного URL-адреса, чтобы заставить его повторно сканировать ваш веб-сайт при следующей публикации ссылки. В противном случае FB, вероятно, все еще использует вашу старую картинку, которую она уже имеет в своем кэше.