2011-11-20 92 views
2

我的facebook应用程序向尚未添加应用程序的用户发送请求。当他们接受请求时,我试图删除它。目前,他们已经(自动)添加该应用并授权其使用他们的信息等。删除Facebook应用程序请求不起作用

我试图删除酷似它的文档中描述的要求:

if(isset($_REQUEST['request_ids'])) { 
    $reqs = explode(',', $_REQUEST['request_ids']); 
    foreach($reqs as $r) { 
     $full_req_id = $r . '_' . $this->_currentfbuser->getId(); 
     $delete_success = $this->_facebook->api("/" . $full_req_id,'DELETE'); 
    } 
} 

我反复检查$full_req_id真的是request-id_user-id,但我仍然得到这个错误:

Message: (#200) The entity backed by id ... cannot be seen by the current viewer (EntID: ...) 

为什么我的应用程序禁止删除请求?不应该总是允许删除同一个应用程序发送的请求吗?

回答

1

我用这段代码解决了它。 (我认为Facebook SDK在内部大致相同,但无论如何)

if(isset($_REQUEST['request_ids'])) { 
    $reqs = explode(',', $_REQUEST['request_ids']); 
    foreach($reqs as $r) { 
     $full_req_id = $r . '_' . $this->_currentfbuser->getId(); 
     $delete_url = "https://graph.facebook.com/" . 
      $full_req_id . "?access_token=" . $this->_facebook->getAccessToken() . "&method=delete"; 

     $result = file_get_contents($delete_url); 
    } 
}