通过应用程序将照片发布到墙上(不是文件上传)

时间:2013-02-17 18:03:17

标签: facebook facebook-graph-api post facebook-wall

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

    $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)需要上传文件

1 个答案:

答案 0 :(得分: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] Photos”并在其中插入您的图片。图像也应该发布到用户墙(如果他没有在他/她的隐私政策中阻止该功能)。

现在可以使用;)