Как придумать алгоритм по проекту в виде тестов?

Есть мысль сделать проект, где пользователю предлагается ряд тестов, в котором ничего не нужно заполнять. Это более ленивые, интерактивно-развлекающие.
Результат теста хочу получить с апи фб, но у каждого теста свои данные на которых он формирует результат теста. Например, вопрос "Через сколько вы полетите путешествовать?" апи фб например может взять возраст юзера и рандомом накинуть ему время, или посчитать время последнего путешествия и усреднить время и отдать ответ.
Другой вопрос "Кто их ваших друзей супер-мен?" - апи фб собирает список друзей и рандом выдает какого-то из них. А другом вопросе, ответ ожидается среди только друзей женского пола или мужского. Но тогда у каждого теста свой алгоритм получается.
Как реализовать такой подход путем малой крови?
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
igor_shevchenko
@igor_shevchenko
Веб-разработчик
Я вижу только такой вариант:
1. Для всех тестов пользователь должен авторизоваться на вашем сайте через Фейсбук. Раз тут висит тег Django, то порекомендую для этого библиотеку allauth.
2. Для каждого конкретного теста с сервера идут запросы к API Фейсбука за данными, которые нужны для этого теста. Опять же могу посоветовать использовать facebook-sdk.
3. Когда данные получены, они обрабатываются уже с учетом логики этого теста. Логика получается разной для каждого теста, поэтому будет логично выделить каждый тест в отдельный класс.

Еще хочу предупредить о том, что у Фейсбука довольно много ограничений по работе с API. Например, уже с двумя тестами из примера возникнут проблемы:
  • Фейсбук не отдает по API полный список друзей пользователя. Вообще никак. Максимум, что можно получить, это список друзей, которые тоже авторизовались на вашем сайте.
  • Возраст пользователя получить можно, но это либо будет диапазон (13–17, 18–21 или 21+), либо вам придется запрашивать разрешение user_birthday. Чтобы вы могли получать это разрешение, придется пройти ревью Фейсбука (отправить им на проверку текст на английском, описывающий, зачем вам разрешение, и скринкаст, демонстрирующий это).


У Вконтакте таких ограничений меньше, можете попробовать с его API.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы