2011-10-20 2 views
1

Я использую диалог запроса для отправки запроса приложения своим друзьям.Диалог запросов с использованием 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> 
+0

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

+0

@ifaour: Обновлен мой вопрос. Где я могу поместить этот request_ids в свой код. –

ответ

5

В Request Dialog properties, есть свойство data, который может быть использован для встраивания своего уникального идентификатора.

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

UPDATE: поставить data в запросе:

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

UPDATE2

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

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

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

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

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

4) Вы используете request_ids для получения сведения о приглашении, либо яваскрипт

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";} 
    } 
+0

Long: Обновлен мой вопрос. Где я могу поместить этот request_ids в свой код. –

+0

@ user1000990: Я обновил ответ. О request_ids, он будет возвращен на ваш обратный URL-адрес в качестве параметра запроса. –

+0

Hoang Long: как передать параметр запроса и получить идентификатор отправителя? –

Смежные вопросы