Как пригласить друзей в ваше приложение: запрос или сообщение? - PullRequest
3 голосов
/ 16 ноября 2011

У меня такая ситуация:

  • TheSite - это веб-сайт, который использует Facebook Connect для авторизации; отношения его друзей с FB также используются для определения привилегий на сайте (доступ к контенту и т. д.). Таким образом, существует приложение Facebook, которое пользователи должны авторизовать для использования сайта.

  • Алиса и Боб (Facebook) друзья.

  • Алиса является членом TheSite и авторизовала приложение; Боб есть / не имеет.

  • Алиса хочет рассказать Бобу о TheSite и призвать его присоединиться.

Я установил этот последний бит - Алиса приглашает Боба - с помощью диалога подтверждения запроса. Это работает (в основном - см. Позже), но я не уверен, что это правильно. Формулировка сообщения с приглашением, полученного Бобом: «Алиса отправила вам запрос на TheSite», звучит так, как будто Боб (должен быть?) Уже является участником TheSite. Кроме того, я не нашел способа очистить запрос после того, как Боб принял его, если он фактически не стал участником TheSite - мне нужен идентификатор пользователя для очистки запроса, но я не могу получить идентификатор пользователя, пока Боб не является участником , Я мог бы сохранить идентификатор запроса и очистить его, если Боб станет участником, но если он этого не сделает, запрос будет зависать вечно, что кажется неправильным. Также могут возникнуть проблемы с тем, что произойдет, если Чарли (еще один участник TheSite) также пригласит Боба где-нибудь вдоль линии, но я еще не до конца продумал это. Я нашел несколько страниц в Интернете, предлагающих методы fbml, которые кажутся актуальными, но я стараюсь держаться подальше от них, учитывая, что fbml уходит.

Так что здесь правильно? Разве это не то, для чего предназначены апрекеты? Стоит ли Алисе отправить Бобу простое сообщение, указывающее ему на сайт? Есть ли что-то еще / лучше использовать здесь? Спасибо!

1 Ответ

1 голос
/ 14 марта 2013

Диалог приглашения ссылается на страницу вашего приложения, включая request_ids в URL в форме & request_ids = request11111, request2222

Если получатель уже авторизовал приложение, они легко доступны в строке запроса.

Сложная часть возникает, когда получателю необходимо сначала авторизовать приложение, потому что по завершении он перенаправляет пользователя на главную страницу приложения и теряет параметр request_ids.

Я решил эту проблему, сначала сохранив все request_ids, найденные встрока запроса в переменной сеанса.Затем перенаправьте к процессу авторизации (если требуется).Когда он завершается, пользователь перенаправляется обратно к основному URL приложения (с удаленными request_ids), но теперь я могу проверить request_ids либо в строке запроса, либо в сеансе, так что это обрабатывает оба сценария изящно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...