1

我正在开发一个 Facebook 应用程序,它会在图像中给出结果。

我使用 PHP gd 库对其进行编码,它是动态的。

当您访问该页面时 - “ http://example.com/result.php?name=your name”,它会输出一个图像文件,其中包含您在 URL 上给出的名称。我的问题是将这张图片发布到 Facebook 用户的照片流中。用户可以看到输出,但是当我尝试发布它时,它会显示

致命错误:未捕获的 CurlException:26:无法在 /home/vhosts/powerofname.orgfree.com/base_facebook.php 中打开文件“ http://mysite.orgfree.com/result.php?name=bestapp ” 977

这是我以前发布的代码

$facebook->setFileUploadSupport(true);
$ret_obj = $facebook->api('/me/photos', 'POST', array(
    'source' => '@'.'http://mysite.orgfree.com/result.php?name='.$name,
    'message' => 'Blah blah'
));

如果有人能发现我的问题,我将不胜感激。

4

2 回答 2

2

如果您为图像提供 HTTP URL(而不是实际上传),那么您必须使用参数url而不是source

$ret_obj = $facebook->api('/me/photos', 'POST', array(
    'url' => 'http://mysite.orgfree.com/result.php?name='.$name,
    'message' => 'Blah blah'
));
于 2013-02-03T18:20:50.413 回答
1

您必须在文件系统上提供图像路径,而不是在网络上。因此,您必须下载图像,将其保存到文件,提供该文件的路径,上传并从磁盘中删除图像。

$tmpfile = tempnam(__DIR__,'fbu');
file_put_contents($tmpfile, 'http://powerofname.orgfree.com/result.php?name='.$name);
$ret_obj = $facebook->api('/me/photos', 'POST', array(
    'source' => '@'.$tmpfile,
    'message' => 'Blah blah'
));
unlink($tmpfile);
于 2013-02-03T18:16:42.927 回答