Эта система "пригласить друзей" для моего сайта звучит для вас некорректно? - PullRequest
0 голосов
/ 23 декабря 2009

Я хотел бы иметь систему, где мои пользователи могут приглашать своих друзей. Мы предпочитаем не использовать сокращение URL при отправке ссылки приглашения, но также важно, чтобы ссылка была относительно короткой. Я думаю, что лучший способ сделать это - просто дать каждому пользователю «имя пользователя профиля», например «tonyamoyal12», и позволить ему запросить новое уникальное имя, если они захотят.

Когда мои пользователи отправляют приглашения, он отправляет URL-адрес, такой как http://mydomain/invite/profile_username, и, по сути, если приглашенный входит в систему по этому URL-адресу, приглашающий получает кредит. Кто-нибудь может вспомнить недостатки этого подхода? Большинство URL-адресов приглашений содержат хэши для проверки целостности приглашения, но я думаю, что мой подход работает нормально.

UPDATE Имя пользователя профиля - это имя INVITER, а не INVITEE. Таким образом, пользователь регистрируется на странице профиля INVITER, и поэтому приглашающий получает «балл» за то, что кто-то зарегистрировался на его странице.

Спасибо!

Ответы [ 7 ]

2 голосов
/ 23 декабря 2009

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

Процесс обычно:

  1. Пригласите пользователя, который отправит ему электронное письмо.
  2. Приглашенный нажимает на ссылку в электронном письме, чтобы перейти на главную страницу регистрации сайта.
  3. Приглашенный регистрируется с действительным именем пользователя по своему выбору, и на основе некоторого уникального случайного ключа (включенного в ссылку перехода по клику) вы можете выполнять свою бизнес-логику с двумя вовлеченными пользователями (добавить в список друзей или что-то еще).

Недостатком генерации ваших собственных имен пользователей является то, что они, скорее всего, будут угаданы, чем случайные числа, потому что вы, вероятно, будете использовать в них английские слова. Если вы генерируете и назначаете случайные имена пользователей (то есть «s243k2ldk8sdl»), приглашенный не будет доволен, поскольку ему придется проделать дополнительную работу, чтобы изменить имя пользователя, или каким-то образом запомнить это имя.

РЕДАКТИРОВАТЬ , поскольку я не очень хорошо понял вопрос.

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

РЕДАКТИРОВАТЬ 2

Поскольку пользователям в системе не назначены имена пользователей, вы можете пойти любым путем. Было бы хорошо разрешить назначение «имени пользователя» по принципу «первым пришел - первым обслужен», так как это позволило бы каждому проще делиться своим URL-адресом с друзьями, поскольку он запоминается и может быть просто введен. для регистрации требуется уникальный ключ ... в этом случае будет проще просто не реализовывать имя пользователя и направлять всех на какую-то страницу регистрации.

1 голос
/ 24 декабря 2009

Вы можете создать уникальный хэш для каждого приглашения и сохранить связь хэшей с именами пользователей. Это потребует немного ресурсов хранилища, но у вас может быть истечение срока действия приглашений, чтобы помочь с этим бороться.

Таким образом, http://mydomain/invite/RgetSqtu будет примером ссылки с таблицей БД, в которой хранится RgetSqtu / profile, пока он не будет использован.

Возможно, вы захотите предоставить полезную страницу с ошибкой, если хеш не найден, например:

К сожалению, введенное вами приглашение не может быть найдено. Это может быть вызвано тем, что приглашение набрано неправильно, уже используется или слишком старое (срок действия приглашения истекает через 3 дня).

1 голос
/ 23 декабря 2009
  1. Вы не можете самостоятельно отслеживать приглашения. В какой-то момент вы можете захотеть узнать, сколько приглашений пришло от пользователя и сколько было принято. С помощью этой единой системы URL вы не можете отслеживать эту информацию.

  2. Боты могут быть легко написаны для спама в такой системе. (Возможно, решено с помощью капчи на страницах)

1 голос
/ 23 декабря 2009

хорошо, если веб-сайт большой, у вас будут конфликты имен, и вы будете зависеть от приглашения приглашающего ввести имя приглашенного, что они могут сделать плохо.

Если вы хотите сделать это таким образом, вам придется иметь дело со столкновениями имен.

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

РЕДАКТИРОВАТЬ: ааа хорошо. хорошо, если они просто нажимают на ссылку, чтобы перейти к приглашающему, то это не проблема. Это кажется совершенно нормальным, и нет секрета в открытых именах пользователей.

1 голос
/ 23 декабря 2009

Почему бы просто не создать собственное сокращение URL-адреса?

Если причина, по которой вы избегаете сокращения URL-адресов, заключается в том, что вы не хотите зависеть от внешних компаний, тогда это может быть хорошим решением для вас.

0 голосов
/ 24 декабря 2009

Если я правильно понимаю настройку, существующий пользователь создает приглашения, отправляя электронные письма своих друзей, на которые ваша система отправит письмо с указанием [пригласитьUrl] / [имя_пользователя inveter]. Так что в случае, если я отправлю письмо, чтобы пригласить вас, URL будет:

www.yourThang.com / пригласить / borisCallens

Каждый раз, когда кто-то посещает это, я (пользователь borisCallens) получает очко. Что помешало бы мне посетить этот URL несколько раз и, таким образом, выиграть игру «Пригласи друга»?

0 голосов
/ 24 декабря 2009

Я бы предложил передать имя пользователя приглашающего в строку запроса, и эта строка запроса должна заполнить либо редактируемое, либо не редактируемое текстовое поле на новой странице регистрации пользователя. Таким образом, у вас остается только одна страница регистрации, URL-адрес короткий, и пользователи получают кредит за привлечение друзей.

http://mydomain/invite/register.html?inviter=invitersUsername

ведет к

Имя: _________
Фамилия: _________
Рекомендовано: invitersUsername

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