Как лучше всего добавить систему комментариев/оценок в приложение для Android

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

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

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

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

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

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

Ответ 1

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

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

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

Посмотрите на панель "Общение" внизу. Его можно настроить для ваших нужд.

Constitution of India

Что еще - Общение бесплатное.

Что касается ваших вопросов:

  • Существует функция комментариев, встроенная в веб-компонент Socialize где вы можете отфильтровать все, что вам кажется неуместным.
  • Общение позволяет вам проходить аутентификацию через Facebook и Twitter.
  • Ограничение одного комментария для пользователя может быть достигнуто с помощью их пользователя и API комментариев.
  • Общение имеет как анонимную аутентификацию, так и Social A/c аутентификация. Я считаю, вы можете удалить анонимный auth. Так что убедитесь, что каждый пользователь аутентифицирован до оценки/комментирования.

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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