Как я могу получить имена друзей, которым я отправляю запросы, используя FB.ui ({method: 'apprequests' - PullRequest
0 голосов
/ 17 октября 2011

Как я могу получить имена друзей пользователя Facebook? Я отправляю запросы на использование FB.ui({ method: 'apprequests'?
Вот мой код:

<input id="btSelectFriends" type="button" value="Select Friends" onclick="javascript:FBUISelectFriends()" />
  <div id="fb-root"></div>
  <script  type="text/javascript" src="https://connect.facebook.net/en_US/all.js"></script>
  <script type="text/javascript">
    function FBUISelectFriends() 
    {
      var selectedFriendsRequest_ids;
      FB.ui({ method: 'apprequests', message: 'Select friends', data: 'tracking information for the user', tite: 'Select friends' },
          function (response) {
            if (!response || !response.request_ids) { alert('Request could not be sent'); return; }
            selectedFriendsRequest_ids = response.request_ids;
            for (var i = 0; i < selectedFriendsRequest_ids.length; i++) {
              FB.api('/me/apprequests/?request_ids=' + selectedFriendsRequest_ids[i].toString(),
                function (response) {
                  if (!response || response.error) { alert('Friends Selection error occured'); return; }
                }
              )
              FB.api(selectedFriendsRequest_ids[0],
                function (response) 
                {
                  alert(response.name);
                }
              );
            }
          }
        );       

      return;
    }
  </script>

Я попробовал этот код, но он не работал:

FB.api(selectedFriendsRequest_ids[0], function (response) {console.log(response.name);});

Не могли бы вы помочь?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 июня 2013

Просто измените это в вашей функции

функция FBUISelectFriends () {

FB.ui(
     { 
        method: 'apprequests',
        redirect_uri: 'YOUR APP URL',
        message: "Tom sent you a request" 
    },     
    function(response) {
          if(response && response.hasOwnProperty('to')) {
             for(i = 0; i < response.to.length; i++) {
                    //alert( response.to[i]); 
                   // response.to[i] gives the selected facebook friends ID           
                   // To get name of selected friends call this function below
                    getfbnames(response.to[i]);
                }               
            }
       }
     );

}

функция getfbnames (selectedfrndid) {

          var url = 'getfriendfbname.php'; // call a php file through URL and jquery ajax        
     $.ajax({
    type:'POST',
    url: url,

    data : { fbid : selectedfrndid }, 
    async: false,

    success: function(data)
    {
       alert(data);
    }
    });  // end of ajax
}

Файл getfriendfbname.php, который возвращает имя друга в Facebook, используя идентификатор друга в php

.
$fbid=$_POST['fbid'];
$json = file_get_contents('https://graph.facebook.com/'.$fbid);
$data = json_decode($json);

echo $data->name;
return $data->name;
0 голосов
/ 17 октября 2011

С 30 сентября Facebook выпустил Requests 2.0 реализацию своей системы, что НАМНОГО более полезно, чем old .Вот почему:

  • С старым ваш пользователь сначала отправил запросы, Facebook вернул вам request_ids , затем вам пришлось проверить, кто вы отправилизапросы к ...
  • С новым новым для каждой группы запросов (например, когда пользователь отправляет несколько запросов с помощью выбора нескольких друзей) Facebook возвращает вам один идентификатор запроса (параметр: response.request ) и параметр со всеми запросами идентификаторов пользователей Facebook были отправлены (параметр: response.to )

Вам просто нужно активировать Requests 2.0 на панели инструментов своего приложения, а затем просто изменить условия обратного вызова Javascript.

Есть запросы на получение информации о друзьях вашего пользователя FB.api('/me/friends?fields=id,name,first_name,last_name, и выпросто нужно проанализировать результат этого запроса с идентификаторами пользователей Facebook, на которые вы отправляли запросы!

Здесь все объясняется о запросах 2.0 : http://developers.facebook.com/blog/post/569/

...