Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使动态创建的内容可共享_Javascript_Php_Facebook_Facebook Opengraph - Fatal编程技术网

Javascript 如何使动态创建的内容可共享

Javascript 如何使动态创建的内容可共享,javascript,php,facebook,facebook-opengraph,Javascript,Php,Facebook,Facebook Opengraph,我有一个网站,使用PHP根据用户输入生成反馈,我想让人们可以选择分享他们的反馈,但我不知道如何 我可以使用OpenGraph,用PHP填充meta,但它看起来不太好,人们可能只想分享网站,而不是他们的反馈 因此,理想情况下,我希望能够共享某种类型的HTML或动态生成的图像 Facebook的 在这方面似乎没有什么好的建议 我更喜欢使用PHP或某种类型的Javascript来实现这一点 谢谢 我认为应该按照下面的方法来做(我没有尝试过)。 因为facebook提供了两件东西,在你的网页中包括两件

我有一个网站,使用PHP根据用户输入生成反馈,我想让人们可以选择分享他们的反馈,但我不知道如何

我可以使用OpenGraph,用PHP填充meta,但它看起来不太好,人们可能只想分享网站,而不是他们的反馈

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

Facebook的

在这方面似乎没有什么好的建议

我更喜欢使用PHP或某种类型的Javascript来实现这一点


谢谢

我认为应该按照下面的方法来做(我没有尝试过)。 因为facebook提供了两件东西,在你的网页中包括两件东西,第一件是javascript代码,第二件是html标记 下面是示例html标记

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

您必须使用变量更改data href属性,如
$url
,它应该包含动态生成的url
如果您想共享当前url,您将使用
$\u SERVER
superglobal来构建它。

最好的方法是,在为图像输入
src=
时,只需将GET值放在正在调用的图像的url中即可

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

这是我发现的动态生成带有文本的图像的最佳方法。

为什么动态填充的OG标记“看起来不错”?如果您希望人们能够共享他们自己的内容,那么保存单个OG元信息的单个URL是一种很好的方法。此外,如果愿意,他们仍然可以通过不包含单独参数的URL共享您的“主”站点。您的其他选项是使用“提要”对话框(允许在运行时指定链接的标题、描述、缩略图)或通过API发布。@CBroe我愿意解决OG的问题,但另一个问题是FB不断缓存您的OG数据,您必须请求重新刮取以更新它。您知道如何解决这个问题吗?通过使用下面的答案,我没有太多的运气让FB使用来自另一个URL的数据。它似乎只想使用来自当前页面的OG数据,你能解释一下你的方法吗?为什么,你需要不断更新什么?特定用户对特定项目的反馈是否随时间而变化?如果不是,则该用户和项目的组合有一个固定的URL(包括引用此特定组合的参数),然后只需刮取一次。@CBroe是的,用户反馈会不断变化,由唯一的用户输入不同的信息,每个会话用户将获得两个不同的反馈,他们可能想分享其中的任何一个或全部。我已经尝试过了,但我无法让它工作。看起来无论Facebook只显示当前页面的OG元内容,按钮都是打开的,所以我甚至不确定URL的作用,因为它似乎没有改变任何东西。另一个问题是FB经常缓存您的OG数据,您必须请求重新刮取以更新它。还有其他想法吗?我认为php imagecreate()最终会成为实现这一点的最佳方法。我会让每个人都了解它的最新进展
 <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
// 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);
?>