在Facebook上实时,动态生成图像共享

时间:2012-10-11 14:37:29

标签: php facebook image share

我正在尝试创建简单的Facebook游戏。客户端确实需要尽可能多地做。我使用FB.ui api的Feed方法生成动态.jpg以在Facebook墙上分享游戏结果。我试图将此代码用作图像生成器:

<?php
header ("Content-type: image/jpeg");

$pictureUrl = $_REQUEST['pic'];
$firstPlayerResult = $_REQUEST['fpr'];
$firstPlayerName = $_REQUEST['fpn'];
$secondPlayerResult = $_REQUEST['spr'];
$secondPlayerName = $_REQUEST['spn'];

$im = imagecreatefromjpeg($pictureUrl);


$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$verdanaBold = './verdanab.ttf';
$verdana = './verdana.ttf';

imagefttext($im, 16, 0, 12, 33, $white, $verdanaBold, $firstPlayerResult);
imagefttext($im, 12, 0, 12, 50, $white, $verdana, $firstPlayerName);

$dimensions = imagettfbbox(12, 0, $verdana, $secondPlayerName);
$textWidth = abs($dimensions[4] - $dimensions[0]);
$x = 693 - $textWidth;

imagefttext($im, 16, 0, 603, 33, $white, $verdanaBold, $secondPlayerResult);
imagefttext($im, 12, 0, $x, 50, $white, $verdana, $secondPlayerName);

imagejpeg($im);
?>

但是有一个问题。在浏览器中打开时脚本工作正常 - 它显示正确的.jpg屏幕,但是当我尝试通过URL链接(使用GET请求)将js脚本从FB.ui中的Feed方法的'picture'字段中过去时,返回内部错误(500)。当我尝试直接通过我的Facebook墙上的链接时,会出现类似的行为(Facebook不解析图像并仅显示URL)。如何修复它并正确显示图像作为Facebook提要?

1 个答案:

答案 0 :(得分:-1)

是的,因为它是在前端部分生成的,并未保存为正确的图像文件。所以url并不是一个永久链接,你应该能够发布一些东西到FB