请求对话框 - 在PHP中处理

问题描述:

直到现在我正在使用下面的代码,不幸的是它不再工作。请有人能帮助我吗?我真的是初学者,所以我会很感激整个代码或者我应该改变的。如何在PHP中获取ID请求,ID用户和ID用户? 非常感谢您请求对话框 - 在PHP中处理

<script> 
     FB.init({ 
     appId : '111111111111111', 
     status : true, 
     cookie : true, 
     oauth: true 
     });  
     function sendRequestViaMultiFriendSelector() { 
     FB.ui({method: 'apprequests', 
      message: 'My Great Request' 
     }, requestCallback); 
     } 

     function requestCallback(response) { 
     $.post("process_ids.php", {uid: <?php echo $uid; ?>, request_ids: String(response.request_ids) }); 
     return false; 
     } 
    </script> 

///////////////////////process_ids.php : 

<?php 
    $appid ='11111111111111'; 
    $secret ='22222222222222222'; 

if(isset($_POST['request_ids']) && !empty($_POST['request_ids'])){ 

$app_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id='.$appid.'&client_secret='.$secret.'&grant_type=client_credentials'); //Get application token 

$sent = explode(',', $_POST['request_ids']); //Convert csv to array 
$count = count($sent); //count how many objects in array  
for ($a = 0; $a < $count; $a++) {  
$request = file_get_contents('https://graph.facebook.com/'.$sent[$a].'?'.$app_token); 

preg_match("/\"to\":\{\"name\":\"(.*?)\",\"id\":\"(.*?)\"/i", $request, $getInfo); 

$sent_to_name = $getInfo[1]; 
$sent_to_id = $getInfo[2]; 

preg_match("/\"id\":\"(.*?)\"/i", $request, $getInfo); 
$idrequest = $getInfo[1]; 

$delete_url = "https://graph.facebook.com/" . $idrequest . "?" . $app_token . "&method=delete"; 
} 
} ?> 

的答案FB被传递给你的JSON编码。而不是写正则表达式的,你可以简单地被储存在$ request变量和json_decode答案()吧...

像这样:

$request = file_get_contents('https://graph.facebook.com/'.$sent[$a].'?'.$app_token); 
$answer = json_decode($request); 
// that's for debugging only 
echo '<pre>'; 
print_r($answer); 
echo '<pre>'; 

这将输出你已解码的请求..那么。你可以通过$答案 - > some_property

访问conents如果你会使用PHP-SDK从GitHub它会更容易(例如删除apprequests):

$requests=$this->facebook->api('/me/apprequests/'); //Requests Graph API call. 
foreach($requests['data'] as $request) { 
    $this->facebook->api($request['id'], 'delete'); // delete the used request 
}