Вопрос:
Я использую диалоговое окно запроса для отправки запроса приложения своим друзьям.
Теперь я хочу вставить свой идентификатор через 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. Долго: я обновил свой вопрос. я добавил этот скрипт, но он не дает мне идентификаторы запросов