Диалоговое окно запроса с помощью facebook

#facebook

#Facebook

Вопрос:

Я использую диалоговое окно запроса для отправки запроса приложения своим друзьям.

Теперь я хочу вставить свой идентификатор через URL-адрес, чтобы, когда он нажимает на приглашение, он должен
перенаправить его в мое приложение и должен получить такую ссылку в адресной строке моего браузера: apps.facebook.com/test?uid=1111111111

Этот uid — мой uid, потому что я отправил приглашение своему другу.

Как это сделать? Обновлено 21/10/2011

 <script>
  FB.init({
    appId  : 'YOUR_APP_ID',
    status : true,
    cookie : true,
    oauth: true
  });


  function sendRequestToManyRecipients() {
    FB.ui({method: 'apprequests',
      message: 'My Great Request',
    }, requestCallback);
  }

  function requestCallback(response) {
    // Handle callback here
  }
  function getMultipleRequests(requestIds) {
  FB.api('', {"ids": requestIds }, function(response) {
  console.log(response);
});
}
</script>
  

Комментарии:

1. ваш идентификатор уже находится внутри request_id, когда они нажимают на запрос, вы можете просто прочитать его оттуда. Чего вы пытаетесь достичь?

2. @ifaour: обновил мой вопрос. Куда мне поместить этот request_ids в моем коде.

Ответ №1:

В свойствах диалогового окна запроса есть свойство, data которое можно использовать для встраивания вашего уникального идентификатора.

Когда пользователь нажимает на уведомление о приглашении, будет возвращено одно (или несколько, если приглашено более одного друга) request_ids . Затем вы можете использовать request_ids для запроса data .

ОБНОВЛЕНИЕ: для ввода data запроса:

  FB.ui({method: 'apprequests',
      message: 'My Great Request',
      data: 'hello'
    }, requestCallback);
  

ОБНОВЛЕНИЕ2

Приглашение FB состоит из нескольких шагов:

1) Эта функция открывает диалоговое окно для пользователя (например, пользователя A), чтобы выбрать друзей для приглашения:

  FB.ui({method: 'apprequests',
      message: 'My Great Request',
      data: 'hello'
    }, requestCallback);
  

2) После того, как пользователь A пригласит друга, говорит пользователь B. Пользователь B получит уведомление в своей ленте новостей.

3) Пользователь B нажимает на уведомление и перенаправляется на страницу холста: apps.facebook.com/test?request_ids=xxxxxx

4) Вы используете request_ids для получения сведений о приглашении либо с помощью javascript

 function getMultipleRequests(requestIds) {
  FB.api('', {"ids": requestIds }, function(response) {
  console.log(response);
});
}
  

или с помощью серверного кода (здесь php, но та же механика для других языков):

 //get the request ids from the query parameter
   $request_ids = explode(',', $_REQUEST['request_ids']);

   //build the full_request_id from request_id and user_id 
   function build_full_request_id($request_id, $user_id) {
      return $request_id . '_' . $user_id; 
   }

   //for each request_id, build the full_request_id and delete request  
   foreach ($request_ids as $request_id)
   {
      echo ("reqeust_id=".$request_id."<br>");
      $full_request_id = build_full_request_id($request_id, $user_id);  
      echo ("full_request_id=".$full_request_id."<br>");

      try {
         $delete_success = $facebook->api("/$full_request_id",'DELETE');
         if ($delete_success) {
            echo "Successfully deleted " . $full_request_id;}
         else {
           echo "Delete failed".$full_request_id;}
        }          
      catch (FacebookApiException $e) {
      echo "error";}
    }
  

Комментарии:

1. Длинный: обновил мой вопрос. Куда мне поместить этот request_ids в моем коде.

2. @user1000990: я обновил ответ. Что касается request_ids, он будет возвращен на ваш URL обратного вызова в качестве параметра запроса.

3. Хоанг Лонг: Как передать параметр запроса и получить uid отправителя?

4. @user1000990: пример кода приведен в конце страницы: developers.facebook.com/docs/reference/dialogs/requests . Есть пример для php, javascript и так далее.

5. Долго: я обновил свой вопрос. я добавил этот скрипт, но он не дает мне идентификаторы запросов