-1

私はFacebookでアプリを開発しています。これは、ユーザーが自分のサーバーに画像をアップロードする必要があり、自分のページに投稿できます。その写真をFacebookに投稿することはできませんが、メッセージのみが表示されている場合は、非常にうまく投稿されます。アップロードされたファイルを通常のphpとは異なる方法で処理するため、herokuの/ tmpディレクトリに問題があると感じます。絶対パスがサーバー(MYAPP.herokuapp.com/tmp)なのかapps.facebookなのかわかりません。 com / tmp。そこにtmpフォルダーを明示的に作成する必要がありますか?これが私の「POST」コードの抜粋です。

   $allowedExts = array("jpg", "jpeg", "gif", "png");
   $extension = end(explode(".", $_FILES["uploadedfile"]["name"]));
   if ((($_FILES["uploadedfile"]["type"] == "image/gif")
   || ($_FILES["uploadedfile"]["type"] == "image/jpeg")
   || ($_FILES["uploadedfile"]["type"] == "image/png")
   || ($_FILES["uploadedfile"]["type"] == "image/pjpeg"))
   && ($_FILES["uploadedfile"]["size"] < 20000)
   && in_array($extension, $allowedExts))
   {
         if ($_FILES["uploadedfile"]["error"] > 0)
          { 
            echo "invalid picture ..please try again";
          }
         else
          {
            echo "successful";
          }
   }
   else
   {
     echo "invalid picture ..please try again";
   }
   $ext=explode("image/", $_FILES["uploadedfile"]["type"]);
   foreach($ext as $e)
   {
     $v .=$e ;
   }
   $path ='https://apps.facebook.com/pagecron'.$_FILES['uploadedfile']['tmp_name'].'.'                 
   .$v;
   $parameters = array('message' => $_POST['message'],
                      'picture' => $path,
                      'link' => $_POST['link'],
                      'name' => $_POST['name'],
                      'caption' => $_POST['caption'],
                      'description' => $_POST['description']
                     );
4

1 に答える 1

1

あなたはこれを使うことができます:

if(session_id()){}
else{session_start();}
$facebook->setFileUploadSupport("http://" . $_SERVER['SERVER_NAME']);
$x=realpath($_FILES['source']['tmp_name']);
$parameters = array('message' => $_POST['message'],'source' =>'@' . $x );
$parameters['access_token'] = $_SESSION['active']['access_token'];
$check=$facebook->api('/me/photos','POST',$parameters);
于 2013-01-08T10:58:07.160 に答える