离线上传照片到Facebook与Web服务器的照片

时间:2011-04-02 10:40:59

标签: php facebook photo offline

我在没有运气的情况下到处搜索,发现很多例子可以在用户进入会话时将照片上传到脸谱(即用户实际坐在计算机上并访问网页)。我试过了样品,然后就可以了。

我注意到去年在同一问题上没有得到答案 Stackoverflow Question

我当前的应用程序允许用户授权离线更新,我存储access_token,user_id等,我可以在离线时成功发布到用户墙。

我真的在努力将照片发布到用户墙上。阅读Facebook documentation,我认为你只能使用multipart / form-data上传照片!?!?

如果用户不在他们的计算机上,这将无效。您可以上传存储在我服务器上的目录中的照片吗?

到目前为止,这是我的代码。请记住,这不会使用facebook会话,因为access_code已经预先授予并存储。正如我所提到的,发布到用户墙已经适用于这种方法。

$filename= "@/myphotodir/filename.jpg");
$url = "https://graph.facebook.com/".$uid."/photos";  //$uid is fb user id
$ch = curl_init($url);
$attachment =  array('access_token' => $access_token,
                'app_id'            => $app_id,
                'name'              => "A photo from me...",
                'fileUpload'        => true,
                'message'           => "my message",
                'image'             => $filename,
          );
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec($ch);
curl_close ($ch);

编辑:$ result返回false ...忘了添加。

任何帮助将不胜感激。 非常感谢, 迪安

1 个答案:

答案 0 :(得分:0)

您应该使用Facebook SDK。使用Facebook SDK,您可以使用:

$facebook->setFileUploadSupport( true );
$parameters = array(
    'access_token' => 'ACCESS_TOKEN_HERE',
    'message' => 'PHOTO_CAPTION',
    'image' => '@' . realpath( '/path_to_file.jpg' ) // Notice the @ sign
);
$facebook->api( '/user_id/photos', 'post', $parameters );

这会将照片发布到他们的默认相册。如果您将user_id替换为album_id,则可以发布到特定相册。