2015-10-20 60 views
-2

我有一个网站,基于用户输入使用PHP生成反馈,我想给人们选择分享他们的反馈,但我不知道如何。如何使动态创建的内容可共享

我可以使用Open Graph并使用PHP填充元,但它看起来不太好,人们可能想分享网站而不是他们的反馈。

所以理想情况下,我希望能够共享某种类型的HTML或动态生成的图像。

Facebook的

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

似乎并没有对此有什么好的建议。

我宁愿使用PHP或某种类型的Javascript来做到这一点。

谢谢!

+0

为什么不动态填充OG标签“看起来不错”?如果你希望人们能够分享他们自己的内容,那么拥有个人OG元信息的单个URL是一个很好的方法。此外,他们仍然可以分享您的“主要”网站,如果需要 - 通过使用其网址,不包含单个参数。您的其他选项使用Feed对话框(允许指定标题,说明,运行时链接的缩略图)或通过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" /> 

但你会使用PHP创建url,这样人们可以通过一个简单的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()将这些值,并用它们把文本在图像上,并从该点很容易使图像共享。

现在,您可能正在使用调用<img />src中的图像文件,但在这种情况下,您实际上会调用一个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,它应该包含动态生成的网址 如果你想分享当前的网址你将使用超全局的$_SERVER来构造它。

+0

我已经试过这个,但我无法得到它的工作看来,无论Facebook只显示当前页面的OG元内容按钮,所以我不知道该URL甚至做什么,因为它似乎没有改变任何事情。另一个问题是FB不断地缓存你的OG数据,你必须要求重新进行更新。任何其他想法? –

+0

我认为php imagecreate()实际上最终会成为做这件事的最好方法,我会让每个人都注意它的方式 –