无法将图片发布到Facebook

时间:2013-02-03 17:34:20

标签: php facebook

我正在开发一个Facebook应用程序,可以在图像中显示结果。

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

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

  

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

以下是我用来发布的代码

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

$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);