在PHP中处理请求对话框


Request dialog - handling in 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编码。而不是写regexp的,你可以简单地把答案存储在$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>';

这将输出解码后的请求…然后可以通过$answer->some_property

访问内容

如果你从github中使用php-sdk,那就更容易了(例如删除插件):

$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
}