我有一个网站,基于用户输入使用PHP生成反馈,我想给人们选择分享他们的反馈,但我不知道如何。如何使动态创建的内容可共享
我可以使用Open Graph并使用PHP填充元,但它看起来不太好,人们可能想分享网站而不是他们的反馈。
所以理想情况下,我希望能够共享某种类型的HTML或动态生成的图像。
Facebook的
似乎并没有对此有什么好的建议。
我宁愿使用PHP或某种类型的Javascript来做到这一点。
谢谢!
我有一个网站,基于用户输入使用PHP生成反馈,我想给人们选择分享他们的反馈,但我不知道如何。如何使动态创建的内容可共享
我可以使用Open Graph并使用PHP填充元,但它看起来不太好,人们可能想分享网站而不是他们的反馈。
所以理想情况下,我希望能够共享某种类型的HTML或动态生成的图像。
Facebook的
似乎并没有对此有什么好的建议。
我宁愿使用PHP或某种类型的Javascript来做到这一点。
谢谢!
事实证明,要做到这一点的最好办法是使用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);
?>
这是我发现的动态生成带有文本的图像的最佳方式。
我认为这应该按照以下方式完成(而我没有尝试过)。 如Facebook给出了两件事情的其中两个在您的网页首先是JavaScript代码和第二个是HTML标记 样本HTML标记以下一个
<div data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count"></div>
你必须改变与可变数据href属性一样$url
,它应该包含动态生成的网址 如果你想分享当前的网址你将使用超全局的$_SERVER
来构造它。
我已经试过这个,但我无法得到它的工作看来,无论Facebook只显示当前页面的OG元内容按钮,所以我不知道该URL甚至做什么,因为它似乎没有改变任何事情。另一个问题是FB不断地缓存你的OG数据,你必须要求重新进行更新。任何其他想法? –
我认为php imagecreate()实际上最终会成为做这件事的最好方法,我会让每个人都注意它的方式 –
为什么不动态填充OG标签“看起来不错”?如果你希望人们能够分享他们自己的内容,那么拥有个人OG元信息的单个URL是一个很好的方法。此外,他们仍然可以分享您的“主要”网站,如果需要 - 通过使用其网址,不包含单个参数。您的其他选项使用Feed对话框(允许指定标题,说明,运行时链接的缩略图)或通过API发布。 – CBroe
@CBroe我会愿意解决OG问题,但另一个问题是FB会不断缓存您的OG数据,并且您必须要求重新进行更新才能更新它,您知道如何解决此问题吗?通过使用下面的答案,我没有太多的运气让FB使用来自另一个URL的数据,它似乎只想使用当前页面的OG数据,你能解释一下你的方法吗? –
为什么,你需要不断更新?特定用户对特定项目的反馈是否随时间而改变?如果没有,那么用户和项目的组合就有一个常量URL(包括引用这个特定组合的参数),然后只需要刮一次。 – CBroe