私は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']
);