2013-02-17 90 views
0

我有服务器上的图像文件夹,如何发布照片从我的图像目录中选择或由我的应用程序生成而不是通过形式上传。通过应用程序发布照片(不是文件上传)

$path = 'name/'.$user_id.'.jpg'; 
    $post_url = '/'.$user_id.'/photos'; 

    //post photo 
    $facebook->setFileUploadSupport(true); 
      //posts message on page statues 
      $msg_body = array(
      'source'=>'@'.realpath($path), 
      'message' => 'like and share photo' 
      ); 

     if ($user_id) { 
      try { 
       $postResult = $facebook->api($post_url, 'post', $msg_body); 
      } catch (FacebookApiException $e) { 
      echo $e->getMessage(); 
      } 
     }else{ 
     echo 'photo was not uploaded'; 
     } 
     echo '<pre>'.print_r($postResult).'</pre>'; 

显示print_r的结果: (#324)需要上传文件

+0

我说那不是print_r的结果,但尝试后,当你越来越异常的消息。检查你的路径值是由实际路径决定的。 – CBroe 2013-02-17 18:11:31

回答

0

你需要问 “photo_upload” 权限去做。

这里的例子使用JavaScript SDK(PHP可能非常相似):

FB.login(function(response) { 
    if (response.authResponse) { 
     FB.api('/me/photos', 'post', { url: "http://yourimagehere.png" }, function(response) { 
      if (!response || response.error) { 
       console.log(response); 
      } else { 
       alert('OK'); 
      } 
     }); 
    } 
},{scope:'photo_upload'}); 

上面的代码会自动创建用户相册和插入那里,你的形象的新专辑“[YourAppName]的照片”。图像也应该发布到用户墙上(以防他在他/她的隐私政策中没有阻止该功能)。

它适用于现在;)