Диалог запроса - обработка в PHP - PullRequest
0 голосов
/ 21 декабря 2011

до сих пор я использовал код, который здесь ниже, к сожалению, он больше не работает. Кто-нибудь может мне помочь, пожалуйста. Я действительно новичок, поэтому я был бы признателен за весь код или за то, что именно мне следует изменить. Как получить запрос на идентификацию, идентификацию пользователя и идентификацию пользователя в 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";
}
} ?>

1 Ответ

0 голосов
/ 21 декабря 2011

Ответы, которые FB передает вам, закодированы в JSON. Вместо написания регулярных выражений вы можете просто взять ответ, который хранится в вашей переменной $ request, и json_decode () it ...

вроде так:

$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

если бы вы использовали php-sdk из github, было бы еще проще (пример удаления запросов):

$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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...