Я пытаюсь разрешить пользователю обмениваться случайно сгенерированным изображением на Facebook через Facebook. Я пытался добиться этого, помещая тег через jquery скрипт после того, как изображение было сгенерировано:
$('<meta property="og:image" content="bin/images/'+ result +'.png" />').appendTo('head');
Но это не работает - скрипт не видит изображение, сгенерированное после загрузки страницы.
Я также пытался разместить скрипт на сайте после добавления изображения:
$('<meta property="og:image" content="bin/images/'+ result +'.png" />').appendTo('head');
$('<script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0"; fjs.parentNode.insertBefore(js, fjs); }(document, \'script\', \'facebook-jssdk\'));</script>').prependTo('body');
Но это тоже не работает. Есть ли способ сделать это?
/// EDITED
Я пробовал другой подход, поэтому сейчас я создаю ИЗОБРАЖЕНИЕ:
<?php
header("Content-type: image/png");
$string = $_POST['text'];
$name = $_POST['name'];
$im = imagecreatefrompng("template.png");
$orange = imagecolorallocate($im, 168, 255, 0);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 130, $px, 160, $string, $orange);
imagepng($im, "images/{$name}.png");
imagedestroy($im);
?>
Затем я создаю совершенно новый. php для совместного использования URL:
<?php
$result = $_POST["result"];
$filename = "{$result}.php";
$myfile = fopen("{$filename}", "w") or die("Unable to open file!");
$txt = "<!DOCTYPE html>
<html>
<head>
<meta property=\"og:url\" content=\"https://myurl.com\" />
<meta property=\"og:type\" content=\"Game\" />
<meta property=\"og:title\" content=\"Game name\" />
<meta property=\"og:description\" content=\"Game description\" />
<meta property=\"og:image\" content=\"https:/myurl.com/bin/images/{$result}.png\" />
<meta property=\"og:image:width\" content=\"320\" />
<meta property=\"og:image:height\" content=\"320\" />
</head>
<body></body></html>";
fwrite($myfile, $txt);
fclose($myfile);
?>
И в конце я добавляю скрипт совместного доступа к Facebook через jQuery:
$('<script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0"; fjs.parentNode.insertBefore(js, fjs); }(document, \'script\', \'facebook-jssdk\'));</script>').prependTo('body');
$('<div class="fb-share-button" data-href="https://myurl.com/'+ result +'" data-layout="button_count"> </div>').appendTo('.pop-up');
Он работает нормально - я имею в виду, что он генерирует изображение и URL, а затем делится URL - но Facebook видит старое изображение домашней страницы ..: / Так как я могу обновить это изображение для каждого сгенерированного URL?