приложение facebook пригласить стимул

Я пытаюсь сделать игру на Facebook, которая позволяет пользователям приглашать друзей. Я хотел бы предоставить поощрение, чтобы люди, которые приглашают других, получали 1 бонусный балл за каждые 10 баллов, которые получает их приглашенный. Я разрабатываю приложение facebook на Google App Engine, используя среду выполнения Python.

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

Я думал создать сущность «Пользователь», где есть значение «id», значение «точки» и значение «отправлено». Когда пользователю начисляются баллы, сервер ищет объект «ссылаемый от» и соответственно присуждает баллы. Но поскольку я присуждаю только 1 очко за каждые 10, для сервера может быть напрасной тратой времени каждый раз проверять, равен ли мод 10 очков 0. Кроме того, если очки приглашения переносятся, кажется, что все пространство имен хранилища данных пользователя быть точки распространения, что также расточительно.

Любой хороший способ реализовать?


person ejang    schedule 03.09.2011    source источник


Ответы (2)


Как вы заметили, один из способов сделать это — обновлять родительскую сущность каждый раз, когда пользователь зарабатывает в общей сложности 10 баллов. Если они зарабатывают только одно очко за раз, максимальные накладные расходы для этого составляют 10%.

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

person Nick Johnson    schedule 05.09.2011
comment
поэтому флаги будут такими, как «user1flag», «user2flag» и т. д., и они будут добавлены как свойства пользователей, на которых ссылался первоначальный пользователь, верно? - person ejang; 05.09.2011
comment
@ejang Нет, только один флаг, который указывает, был ли обновлен счет. Затем для каждого пользователя, у которого были рефералы, вы можете запросить пользователей, которых они направили, у которых установлен флаг. Или, используя mapreduce, сделайте то же самое, не требуя отдельных запросов. - person Nick Johnson; 05.09.2011

Это противоречит политике платформы faecbooks.

Приложение не вознаграждает напрямую и не требует от пользователей использования социальных каналов Facebook, таких как истории в ленте и запросы.

person Lix    schedule 03.09.2011
comment
Он не говорит о вознаграждении за использование социальных каналов, он говорит о предоставлении существующим пользователям доли баллов, которые зарабатывают новые пользователи. Очки, похоже, являются концепцией в приложении, и пока они не связаны с созданием историй и т. Д., Все в порядке. - person Rafiq Maniar; 03.09.2011
comment
да, баллы — это внутриигровая концепция, которую можно заработать, играя в игру. Мне было интересно, как можно начислять бонусные очки на основе очков, заработанных приглашенным в игре. - person ejang; 03.09.2011
comment
то, что вы говорите, - если вы пригласите больше друзей, вы получите больше очков - это поощрение. - person Lix; 04.09.2011
comment
только что проверил с разработчиками facebook: должно быть в порядке, пока они не получают очки за приглашение друзей, а только за действия после того, как друзья приняли приглашение. так что я думаю, что мое предложение действительно, но если бы кто-нибудь мог сказать мне, как спроектировать запись хранилища данных, это было бы здорово. - person ejang; 04.09.2011