2014-04-12 47 views
0

我使用官方Facebook PHP SDK与图形API交互。根据Facebook的文档here,我使用下面的API方法张贴到Facebook涂鸦墙帖子评论:评论发布但OAuthException返回

public function post_comment($id, $comment) { 
    $publish = $this->facebook->api("/$id/comments", "post", array('message' => $comment)); 
    return $publish; 
} 

的评论已成功发布到Facebook的:我可以看到它在Facebook的网站上公布之后,但API本身返回:

PHP Fatal error: Uncaught OAuthException: An unexpected error has occurred. Please retry your request later.

这反过来导致我的服务器返回500内部服务器错误。

鉴于评论成功发布,我不知道如何可以有一个OAuth异常?

任何帮助将被感激地接受。

编辑:

我跑了Facebook的图形API资源管理器相同的方法,并得到了相同的输出。评论发布了正确的,但图表浏览器也抛出了Uncaught OAuthException错误。我选择了所有默认权限,包括publish_streampublish_actions。具体的输出是:

{ 
    "error": { 
     "message": "An unexpected error has occurred. Please retry your request later.", 
     "type": "OAuthException", 
     "code": 2 
    } 
} 
+0

奇怪!你可以分享post_id,如果它的公众。你是否也尝试过其他帖子? –

+0

不幸的是,这不是一个公开帖子,但是我尝试了多个配置文件中的多个帖子,并且都返回相同的错误,但仍发布评论。 – BnMcG

回答

0

嘿你在这里你去一些演示代码。 $POST_ID必须由你设定。

try{ 
    $response = $facebook->api("/".$POST_ID."/comments","POST",array (
     'message' => 'This is a test comment', 
     ) 
    ); 
}catch(FacebookApiException $e){ 
error_log($e->getMessage()); 
} 
+0

嗨,我比较了两个代码示例,这看起来与我所拥有的非常相似。我试图在引号之外添加变量,但我仍然得到相同的错误。 – BnMcG

+0

@BnMcG抱歉,忘了粘贴周围的'try {} catch(FacebookApiException $ e){}' –

+0

我添加了try/catch块,它只​​是抛出我在原始文章中声明的错误:“一个意外错误发生了,请稍后重试您的请求。“我在我的问题中添加了一些信息,看看它是否有帮助。 – BnMcG