我正在运行一个小的 PHP 应用程序,其中一些用户使用图形 api 连接到 Facebook 并发布到他们的页面提要。它运行良好,没有问题,直到今天有用户告诉我他的帖子没有出现在他的页面上。我检查了我的数据库和日志文件,facebook api 没有例外,它返回了新帖子的 id。我尝试发布完全相同的帖子,并将相同的图像文件附加到我自己的页面上,并且一切都按预期工作。
这是执行 API 调用的 PHP 代码:
$fb = new facebook(array('appId'=>FB_APP_ID, 'secret'=>FB_APP_SECRET, 'cookie'=>true));
try {
if(!empty($post->file)) {
$do = "photos";
$request['fileUpload'] = true;
$request['source'] = "@".realpath("data/srmfiles/{$userIdentity->id}/{$post->file}");
$fb->setFileUploadSupport(true);
}
$postToId = ($do=="photos" && $post->facebook_page->facebookFotoAlbumId)
? $post->facebook_page->facebookFotoAlbumId
: $post->facebook_page->facebookId;
$fb->setAccessToken($post->facebook_page->accessToken);
$response = $fb->api("/{$postToId}/{$do}","POST",$request);
$post->wasSuccessfull = 1;
$post->facebook_id = $response['id'];
}
catch(FacebookApiException $e){
$post->failCount++;
if($post->failCount>=3) {
$post->wasSuccessfull = -1;
}
$handle = fopen("srm-errors-".date("Ymd").".txt","a");
fwrite($handle,date("H:i:s")." - ".$e->getMessage()."\n");
fclose($handle);
}
有谁知道可能是什么问题,Facebook API 没有抛出异常,返回新帖子的 ID,但帖子没有出现在页面上,也不能直接通过 ID 查看?