Как лучше всего добавить систему комментариев / рейтинга в приложение для Android - PullRequest
10 голосов
/ 11 ноября 2010

Я уже опубликовал приложение для Android , где вы можете увидеть список конкретных объектов и подробную информацию о них.Список меняется каждый день, но некоторые объекты могут появиться снова.Приложение взаимодействует с сервером PHP по протоколу HTTP и периодически извлекает список объектов.

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

Я вижу две проблемы:

  • Система комментариев может быть нарушена спаммерами
  • Комментарий может быть добавлен из другой системы

Итак, мои вопросы:

  • Как защитить систему от спама ?
  • Как аутентифицировать приложение на сервере?
  • Как ограничить количество комментариев одним комментарием на пользователя и объект?
  • А как насчет идентификатора устройства Android?Достаточно ли уникально, чтобы использовать его в качестве идентификатора для пользователя?
  • Какие еще проблемы вы видите?

Ответы [ 4 ]

7 голосов
/ 21 апреля 2012

Вы можете попробовать Socialize SDK , который является открытым исходным кодом и действительно хорошим SDK для рейтинга и комментариев, которые вы ищете.Он уже имеет хорошо функционирующую встроенную систему комментирования, а также функцию «лайк / любовь» и публикацию в FB и Twitter.С каждой «сущностью» (объектом в вашем случае) могут быть связаны метаданные.Так что все, что вам нужно сделать, это создать / использовать виджет рейтинга, а затем отправить этот рейтинг с сущностью, прикрепленной к вашему объекту.Чтобы отобразить свой рейтинг / комментарий, достаточно просто извлечь их из Socialize.

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

Я использую Socialize уже около года.Они повзрослели за этот период и всегда стремятся быть лучшими в том, что они делают.Вот ссылка на одно из моих приложений, если вы хотите увидеть Socialize in Action - Конституция Индии

Посмотрите на панель социализации внизу.Его можно настроить в соответствии с вашими потребностями.

Constitution of India

Что еще - Социализация бесплатна.

По вашим вопросам:

  1. В Socialize встроена модерация комментариевВеб-компонент, где вы можете отфильтровать все, что, по вашему мнению, неуместно.
  2. Socialize позволяет вам проходить аутентификацию через Facebook и Twitter.
  3. Ограничение одним комментарием на пользователя может быть достигнуто с помощью его пользователяи API комментариев.
  4. Socialize имеет как анонимную аутентификацию, так и аутентификацию Social A / c.Я верю, что вы можете удалить анонимную авторизацию.Так что убедитесь, что каждый пользователь прошел аутентификацию перед оценкой / комментированием.
2 голосов
/ 11 ноября 2010

Вам понадобится какое-то ограничение скорости. Я использовал этот в этом примере раньше.

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

2 голосов
/ 11 ноября 2010

Для аутентификации вы можете использовать OpenID , как это делает StackOverflow или аутентификация Facebook .После того, как вы пройдете проверку подлинности, будет легко ограничить количество комментариев одним на пользователя на объект.Что касается спама, вы можете следовать модели StackOverflow и разрешать пользователям голосовать за комментарии вверх или вниз или помечать их как спам.Возможно, пользователи с комментариями, за которые проголосовали, будут иметь больше возможностей и смогут пометить комментарии как спам.

0 голосов
/ 24 августа 2012

Прочтите это, я думаю, должно быть возможно создать UUID для каждого случая: http://android -developers.blogspot.de / 2011/03 / идентифицирующий-приложение-installations.html

А затем сохраните скрытый ключ API, который жестко запрограммирован или, по крайней мере, каждый раз вычисляется как get или в стиле загадки под влиянием времени его использования. Но вы никогда не будете уверены, что злоумышленники / хакеры не обнаружат его и, возможно, злоупотребят им, у вас всегда будет эта проблема.

Аутентификация с использованием UUID пользователя + api-key.

...