在网站上提供点击和上传图片的选项: 搜索后得到此代码
$pic = $_GET['PhotoID']; //example: http//www.mysite.com/content/2013/03/image.jpg
copy($pic, 'tmp/file.jpg');
$args['image'] = '@' . realpath('tmp/file.jpg');
$publish = $facebook->api('/me/photos', 'post', $args);
unlink('tmp/file.jpg');
此代码工作正常。 但是将图像复制到tmp需要一些时间我想加快这个过程。 (从我的网站上传图像只有外部图像)
如何在不复制到temp的情况下使用此代码:
$pic = $_GET['PhotoID']; //example: http://www.mysite.com/content/2013/03/image.jpg
$args['image'] = '@' . realpath('$pic');
$publish = $facebook->api('/me/photos', 'post', $args);
不确定使用'@'&真实路径 我可以使用完整的图像网址而不使用realpath:
`$args['image'] = $pic;
$publish = $facebook->api('/me/photos', 'post', $args);`
&安培;如果用户dnt授权应用程序,显示错误消息的最佳方法是什么。 或致命错误之类的错误:发生未捕获的OAuthException
答案 0 :(得分:2)
您无需将图像复制到/tmp
。您可以通过在参数中提供图像URL本身来直接上传图像。以下代码应该有效:
$picUrl = 'http//www.mysite.com/content/2013/03/image.jpg';
$photoId = $facebook->api("me/photos","POST",array('url'=>$picUrl,'message'=>"status message")
答案 1 :(得分:0)
我在我的应用程序中也做了同样的事情,请继续这样做.. 确保您拥有权限publish_stream
$attachment = array(
'message' => 'Message',
'name' =>'your app name',
'caption' => "caption under the image",
'link' => 'your link',
'description' => 'description regarding the image',
'picture' => 'path of the picture(doesnt work for the local path, should be server path)',
'method'=>'stream.publish',
'actions' => array(
array(
'name' => 'App name',
'link' => 'your app link'
)
)
);
之后
$result = $facebook->api('/'.$uid.'/feed/','post',$attachment);
这里$ uid是你的Facebook用户ID,你可以从facebook配置文件中获取
$facebook = new Facebook('configure your facebook config file here');
$my_details = $facebook->api('/me');
$uid = $my_details['id']; // id of the user