Запросы приложений Facebook: Как определить, кто кого пригласил?

Мы собираемся создать приложение для Facebook, которое будет работать внутри XFBML IFrame. Мы уже нашли хороший учебник для этого (слава автору). Прямо сейчас есть еще одна проблема, с которой нам нужно разобраться.

По сути, мы просто хотели узнать, как определить UID человека, который пригласил друга присоединиться к приложению. Например, пользователь A приглашает пользователя B присоединиться к Cool-App. Пользователь B видит запрос приложения и отвечает, принимая приглашение. Теперь вопрос в том, как мы узнаем, что пользователь B был направлен пользователем A?

Помогите, пожалуйста.

2 ответа

Что ж, к счастью, мы нашли самый близкий ответ.

FBML имеет тег fb:req-choice, который мы обычно используем внутри формы fb:request. Также может быть встроен в атрибут Content последнего.

Это выглядит так:

<fb:req-choice url="URL_HERE" label="BUTTON_TEXT_HERE"/>

..where URL_HERE - это URL-адрес вашего приложения плюс относительный путь к чему-то вроде этого:

http://apps.facebook.com/my_cool_app/path/to/somewhere

например:

http://apps.facebook.com/my_cool_app/users/invite/referred-by/1234567890

На самом деле это кнопка, которую пользователь "принимает" или "подтверждает". При срабатывании FB перенаправляет на указанную вами ссылку.

Вот и все. Остальное зависит от вашего приложения.

При использовании тега формы запроса FBML вы можете получить приглашенных пользователей как переменную POST.
Пример PHP:

if(isset($_POST["ids"])) {
    echo "<center>Thank you for inviting ".sizeof($_POST["ids"])." of your friends on <b><a href=\"http://apps.facebook.com/".$app_url."/\">".$app_name."</a></b>.<br><br>\n";
    echo "<h2><a href=\"http://apps.facebook.com/".$app_url."/\">Click here to return to ".$app_name."</a>.</h2></center>";
}

Я не могу узнать, принял ли приглашенный пользователь это конкретное приглашение. (например, что если он также получит запрос от пользователя C?)

Другие вопросы по тегам