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 に答える