我无法使用 facebook api 将照片发布到页面的墙上。如果我通过 php 上传文件并使用 $_FILES[]["tmp_name"] 作为我的 $filelocation 它工作正常。但是,如果我将 $filelocation 更改为本地文件路径( /tmp/1351750505-24d.jpg ),它将不起作用。
我已经给了我的 /tmp dir 777 并确保我的文件也是 777 以消除任何权限问题。我还使用了多个文件来确保它不仅仅是一个文件的问题。
我唯一的另一个想法是这可能是 php.ini 中的随机设置,但我没有看到任何明显的东西。
错误日志:
[Thu Nov 01 06:52:13 2012] [error] [client 66.x.x.x] {"error":{"message":"(#1) An unknown error occurred","type":"OAuthException","code":1}}, referer: http://origin.example.com/adder/index.php
[Thu Nov 01 06:52:13 2012] [error] [client 66.x.x.x] $filelocation = /tmp/1351752730-24e.jpg, referer: http://origin.example.com/adder/index.php
[ec2-user@ip-10-x-x-x adder]$ ll /tmp/1351750505-24d.jpg
-rwxrwxrwx 1 apache apache 331 Nov 1 06:15 /tmp/1351750505-24d.jpg
$facebook->setFileUploadSupport(true);
$post_id = "";
try
{
$post_id = $facebook->api("/$page_id/photos", 'POST',
array(
'source' => '@' . $filelocation,
'message' => $name
));
error_log("\$filelocation = " . $filelocation);
} catch (FacebookApiException $e)
{
$result = $e->getResult();
error_log(json_encode($result));
$post_id["id"] = "FAIL!";
error_log("\$filelocation = " . $filelocation);
}