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

4

1 回答 1

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

它现在有效;)

于 2013-03-14T11:36:28.593 回答