シンプルな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 画面が表示されますが、js スクリプトへの URL リンク (GET 要求を使用) を FB.ui から Feed メソッドの「picture」フィールドに貼り付けようとすると、その内部エラー (500) を返します。Facebook ウォールのリンクを直接通過しようとすると、同様の動作が表示されます (Facebook は画像を解析せず、URL のみを表示します)。Facebook フィードとして画像を修正して正しく表示するにはどうすればよいですか?