2015-10-20 2 views
-2

У меня есть сайт, который генерирует обратную связь на основе ввода пользователем с помощью PHP, и я хотел бы дать людям возможность поделиться своими отзывами, но я не уверен, как это сделать.Как сделать динамически созданный контент доступным для использования

Я мог бы использовать Open Graph и заполнить мета с помощью PHP, но он не будет выглядеть очень хорошо, и люди могут захотеть просто поделиться сайтом, а не с ним.

Так что в идеале я хотел бы иметь доступ к некоторому типу HTML или динамически сгенерированному изображению.

Facebook,

https://developers.facebook.com/docs/plugins/share-button

, похоже, не имеют каких-либо хорошее предложение по этому вопросу.

Я бы предпочел использовать PHP или какой-либо Javascript для этого.

Спасибо!

+0

Почему не динамически заполняемые метки OG «хорошо выглядят»? Если вы хотите, чтобы люди могли делиться собственным контентом, то отдельные URL-адреса, содержащие отдельную мета-информацию OG, являются хорошим способом сделать это. Кроме того, они могут по-прежнему использовать ваш «основной» сайт вместо него, если хотите - используя свой URL-адрес, который не содержит отдельных параметров. В ваших других вариантах используется диалог «Фид» (который позволяет указывать заголовок, описание, эскиз ссылки во время выполнения) или отправлять по API. – CBroe

+0

@CBroe Я бы желал разрешить OG, но еще одна проблема заключается в том, что FB постоянно кэширует ваши данные OG, и вам нужно запросить повторную царапину, чтобы узнать дату, которую вы знаете, как обойти это? И, используя приведенный ниже ответ, мне не очень повезло, что FB использовал данные из другого URL-адреса, но, похоже, хочет использовать данные OG с текущей страницы, можете ли вы объяснить свой метод больше? –

+0

Почему, что вам нужно постоянно обновлять? Отклики пользователя от конкретного пользователя на определенный предмет меняются со временем? Если нет, то эта комбинация пользователя и элемента имеет постоянный URL (включая параметры, относящиеся к этой конкретной комбинации), а затем это нужно очищать только один раз. – CBroe

ответ

0

Оказывается, лучший способ сделать это состоит в использовании php imagecreate() при входе в src= для изображения вы просто положить значения GET в URL изображения, которое вы вызываете

<img src="www.domain.com/myimage.png?textoverimage=customersname" /> 

Но вы создаст url с php, чтобы люди могли представить значение, которое они хотят на изображении, с помощью простой html-формы, например.

<form method="get"> 
    <imput type="text" name="customername" /> 
    <imput type="submit" /> 
</form> 

<img src='www.domain.com/myimage.png?textoverimage=<?php echo $_GET["customername"];?>' /> 

Тогда PHP ImageCreate() принимает эти значения и использовать их, чтобы поместить текст поверх изображения, и с этого момента легко сделать изображение разделяемыми.

Теперь вы, вероятно, используете для вызова файла изображения в src<img />, но в этом случае вы фактически вызовите файл php, а imagecreate() сгенерирует желаемое изображение из этого файла php. ниже будет выглядеть тот файл php.

<?php 
// Set the content-type 
header('Content-Type: image/png'); 

// Create the image 
$im = @imagecreatefromjpeg("http://domain.com/imagefile.jpg"); 

// Create some colors 
$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 
//imagefilledrectangle($im, 0, 0, 399, 29, $white); 

// The text to draw 

$text = $_GET["textoverimage"]; 


$font = '/stocky.ttf'; 

// Add some shadow to the text 
imagettftext($im, 20, 0, 120, 170, $grey, $font, $text); 


// Using imagepng() results in clearer text compared with imagejpeg() 
imagepng($im); 
imagedestroy($im); 
?> 

Это лучший способ, которым я нашел динамическое создание изображений с текстом над ними.

1

Я думаю, что это должно быть сделано следующим образом (скорее, я не пробовал). Как facebook дает две вещи два включают в свой сайт первым это код Javascript и второй один HTML разметки Образец HTML разметки следующие один

<div data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count"></div> 

Вы должны изменить атрибут данных, HREF с переменной как $url и этим должен содержать динамически сгенерированный URL-адрес Если вы хотите поделиться текущим URL-адресом, вы будете использовать $_SERVER superglobal для его создания.

+0

Я пробовал это, но я не могу заставить его работать, кажется, что независимо от того, какой Facebook только показывает содержание метаданных OG на текущей странице, кнопка включена, поэтому я не уверен, что URL-адрес даже делает, потому что это не кажется что-либо изменить. Другая проблема заключается в том, что FB постоянно кэширует ваши данные OG, и вам нужно запросить повторную очистку, чтобы обновить ее. Любые другие идеи? –

+0

Я думаю, что php imagecreate() на самом деле окажется лучшим из тех, кто делает это, я буду следить за тем, как это происходит –

Смежные вопросы