我正在开发一个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'
));
如果有人能发现我的问题,我将不胜感激。
答案 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);