#facebook #fbml #invite
#Facebook #fbml #пригласить
Вопрос:
В моем текущем .Приложение facebook на основе NET и FBML, у меня есть некоторый код, который выглядит следующим образом:
<fb:request-form
action="http://mysite.com/InvitesSent.aspx"
method="POST"
invite="true"
type="SomeType"
content="Here is an invite to <fb:req-choice url='http://mysite.com?<%=Params %>' label='My site' />">
<fb:multi-friend-selector
max="20"
actiontext="Invite your friends!"
showborder="false"
rows="4"
bypass="cancel"
email_invite="false"
exclude_ids="" />
</fb:request-form>
На моем сайте появляется окно выбора нескольких друзей, из которого пользователь выбирает нескольких друзей и нажимает «отправить приглашения», после чего пользователь перенаправляется на http://mysite.com/InvitesSent.aspx .
На другом конце получатели приглашения видят уведомление с кнопкой «Принять». При нажатии кнопки facebook немедленно перенаправляет на мой сайт с
http://www.facebook.com/l.php?u=http://mysite.com? ...
что такое перенаправление внешних ссылок facebook. Это перенаправление включает параметры, которые я указал в атрибуте URL fb:req-choice.
Мой вопрос заключается в следующем: поскольку FBML должен быть прекращен, как мне добиться такого поведения в Javascript SDK?
Я могу отправлять уведомления с помощью FB.ui и apprequest, но, похоже, я не могу привязать параметры к URL, как я могу в FBML. Мне это нужно, поскольку я хочу вознаградить приглашающего, и для этого мне нужно иметь возможность отслеживать индивидуальные запросы.
Возможно ли что-либо из этого в новом SDK? Документация сбивает с толку и иногда проводит различия между запросами и приглашениями, а иногда и нет. Честно говоря, я не совсем уверен, есть ли разница, я просто цепляюсь за подсказки в FBML, такие как ‘invite =»true»‘, которые могут помочь мне найти решение.
Ответ №1:
Это больше невозможно, что видно из следующего абзаца в документации разработчика
Ответ пользователя
Если пользователь нажимает «Принять» запрос, он будет отправлен на URL-адрес canvas приложения, отправившего запрос. Этот URL-адрес будет содержать дополнительный параметр request_ids, который представляет собой разделенный запятыми список идентификаторов запросов, которые пользователь пытается выполнить:
http://apps.facebook.com /[app_name]/?request_ids=[request_ids] В качестве наилучшей практики, когда пользователь попадает в ваше приложение, вы должны прочитать невыполненные запросы приложений. Если пользователь нажал на уведомление или запрос с панели мониторинга, вам будет передан идентификатор запроса через URL. Затем, когда пользователь обрабатывает запросы, вы должны удалить их через Graph API.
Запросы 2.0 запросы не будут удаляться, когда пользователь нажимает на accept в API Facebook. Вы должны прочитать и очистить их с помощью Graph API.
Итак, что вы можете попробовать, это :
- когда пользователь отправляет приглашения / запросы своим друзьям, прочитайте request_ids в обратном вызове javascript и сохраните их в своей базе данных с помощью ajax (чтобы вы могли звонить
InvitesSent.aspx
). - Когда приходит новый пользователь, прочитайте request_id и вознаградите пользователя, отправившего запрос.
Если вы можете сказать мне, что происходит, когда пользователь отправляет запрос с внешнего веб-сайта, а другой пользователь принимает, с новым JS SDK, я могу быть более конкретным с решением. В принципе, если вы следите за URL-адресом браузера, вы узнаете, как facebook перенаправляет нового пользователя, который согласился. В документации принятие упоминается только для приложений canvas, поэтому я не уверен, что происходит с внешним сайтом. Если вы протестируете его, мы сможем это выяснить.
Редактировать:
Как предположил Igy, я предполагаю, что принятие запроса всегда перенаправит на холст.
Комментарии:
1. Просто обработайте запрос по URL-адресу canvas, а затем отправьте пользователя обратно в ваше основное приложение с Facebook; я настоятельно рекомендую не делать это автоматически / автоматически, поскольку это ухудшает работу пользователя. Ожидание при принятии запроса заключается в том, что он приведет вас куда-нибудь на facebook.com таким образом, автоматическая пересылка в другое место в большинстве случаев является неожиданной. Если вы вообще не хотите иметь приложение canvas, запросы, вероятно, не являются хорошим каналом для использования
2. @Igy итак, если у izb нет приложения canvas, а есть только веб-сайт, можно ли отслеживать сообщения в ленте, например, когда пользователь переходит по ссылке в сообщении ленты, добавляется ли post_id к URL-адресу?
3. Для справки, у меня нет приложения canvas.
4. Я думаю, вам следует попробовать использовать сообщения в ленте и вознаграждать людей (на чьи сообщения были нажаты), что приведет к увеличению трафика на ваш сайт. Читая документацию на первый взгляд, я не мог понять, как вы можете отслеживать сообщение, на которое был нажат. Итак, вам придется поэкспериментировать. Если вы выясните это, опубликуйте это здесь, мне тоже было бы интересно найти решение. Если я что-то выясню, отредактирую свой ответ
![]()