2012-08-22 65 views
1

我已经写了一个facebook应用程序,它检查相册是否存在,如果它不创建一个。Facebook创建专辑图api

这是所有工作2个星期前,现在我去检查它显示客户端,它不再工作。我认为这可能与Facebook有关,也许他们现在需要SSL?但是,我无法在网站上找到此证据。

我得到的错误是:

Warning: file_get_contents(https://graph.facebook.com/517578134925015/albums?access_token=AAAD5tUCp808BAIZBPk4eV11mlf9C92velLsDeZAm5mXhKZCkwpM3LNy7ax6BBmhuH4BVZBUN6Iycyt55NoXZAFSts9zHeCFNzT6FLJYucgT2SQG8fOYIP) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 500 Internal Server Error in /var/www/vhosts/hidden/development/cms/backend/publishAlbum.php on line 59 

我当前的代码是:

   //If no album ID is set, create a new album. 
      $graph_url = "https://graph.facebook.com/".$pageId."/albums?" . "access_token=". $pageAccessToken; 
      $postdata = http_build_query(
       array(
        'name' => $albumName 
       ) 
      ); 
      $opts = array('http' => 
       array(
        'method'=> 'POST', 
        'header'=> 
        'Content-type: application/x-www-form-urlencoded', 
        'content' => $postdata 
       ) 
      ); 
      $context = stream_context_create($opts); 
      $result = json_decode(file_get_contents($graph_url, false, $context)); 

任何帮助表示赞赏。

感谢

编辑:

我尝试使用该API的代码。

$params = array(
    'name' => 'testtest', 
    'message' => 'test test' 
); 
try{ 
    $albumtResult = $facebook->api('/'.$pageId.'/albums', 'post', $params); 
} 
catch(FacebookApiException $e){ 
    error_log($e); 
    $albumtResult = null; 
} 
$albumId = $albumtResult->id; 

这里是捕获的异常:http://pastebin.com/pxeyRTDn

回答

1

经过大量搜索之后,有人在Facebook上创建了一个与我的问题几乎完全相同的错误报告。

自创建以来,有很多回购商和其他人报告他们也有同样的问题。

Facebook上的优先级已更改为很高,希望能很快得到解决。

Facebook的错误报告:https://developers.facebook.com/bugs/376442565760536?browse=search_50361119879b15494037772

感谢大家的时间。

+0

请将此答案标记为“已接受”,因为这实际上是导致问题的原因。 –

+0

您必须等待24小时,只剩下2个小时。 – CharliePrynn

+0

这已修复。它在2012年8月31日进行了测试和工作。 – CharliePrynn

1

那么,对于这种错误的原因是很容易搞清楚,如果你使用的PHP SDK调用API,而不是做他们“手工”使用file_get_contents ...因为使用SDK,您会得到一个应该指向错误原因的异常,而file_get_contents(默认情况下)只会在获取其他信息而不是2xx HTTP状态代码以获取答案时发出警告,并且不允许您访问响应主体(这也很可能包含人类可读的错误消息)。

我的建议:使用SDK!

否则,即使状态代码发出错误信息,也要添加上下文参数以查看返回的数据。 (详情 - >查看手册)

+0

感谢您的回复。首先,我是这么做的,但这也行不通。这样,直到几个星期前。 我已将代码添加到使用API​​编写的原始文章中,也许您可​​以告诉我它是否存在错误。虽然,我相信它应该起作用。 – CharliePrynn

+0

OK,_“发生未知错误。”_不是最有帮助的错误描述(谢谢,Facebook),但_OAuthException_的类型可能意味着它是一个权限问题...(?) – CBroe

+0

我认为这可能是权限,但我的应用程序是用来检查相册是否存在,如果它没有创建它,然后使用批量请求上传一批图像。 但目前,它无法创建具有OAuthException错误的相册,并将所有图像上传到默认库中,并显示该应用程序的名称。 所以我应该有正确的权限来创建一个相册,如果它可以上传图片。 – CharliePrynn