Модуль опроса. API

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

Список опросов

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=list' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Если в ответе ключ err_cod - ошибка. Иначе в polls - список опросов.

Данные опроса:

id                : id опроса, целое число больше нуля
title             : заголовок
description       : описание
start_date        : дата старта опроса в виде строки
end_date          : дата завершения опроса в виде строки
start             : дата старта опроса в виде timestamp
end               : дата завершения опроса в виде timestamp
stats_voted_users : количество проголосовавших пользователей
can_see_results   : 1 - пользователь может видеть результаты голосования, 0 - нет
can_see_results_before_vote : 1 - может видеть результаты до голосования, 0 - только после
can_revote        : 1 - может переголосовать, 0 - нет
can_multi_choice  : 1 - можно голосовать за несколько пунктов, 0 - нет
can_anonymous     : 1 - можно голосовать анонимно, 0 - нет
voted             : 1 - голосовал, 0 - нет
vote_time         : дата голосования в виде строки, '' если не голосовал
viewed_time       : дата первого просмотра опроса в виде строки, '' если не просматривал еще
ignore            : пользователь просил не показываеть ему этот опрос
  • Если не разрешено просматривать результаты опроса или пользователь не голосовал, то stats_voted_users = -1.
  • ignore - флаг, который указывает на то, что ранее пользователь давал команду не показывать этот опрос. Показывать или нет - на усмотрение.
  • viewed_time установлен, если пользователь вызывал cmd=choices, т.е. видел названия пунктов меню и возможно статистику (если разрешен ее показ).
  • vote_time - дата последнего голосования, если голосовал несколько раз.

Получить данные опроса

В параметре poll_id - id опроса в списке polls

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=choices&poll_id=1' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Если в ответе ключ err_cod - ошибка. Иначе в choices - пункты опроса:

id          : id пункта опроса
title       : пункт опроса
description : описание
voted       : 1 - проголосовал за этот пункт
votes       : количество пользователей проголосовавших за этот пункт
  • Если не разрешено просматривать результаты опроса или пользователь не голосовал, то votes = -1.

Голосование

В параметре:

  • poll_id - id опроса в списке polls
  • choice - id пункта или список id, разделенных запятыми
  • as_anon - голосовать анонимно (1 - да, 0 - нет)
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=vote&poll_id=1&choice=1,2' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Игнорировать опрос

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=ignore&poll_id=1' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Не игнорировать опрос

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&cmd=dont_ignore&poll_id=1' \
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'

Коды ошибок

temporary        : ошибка на сервере API
poll_id_required : в параметре poll_id не задан id опроса
poll_not_found   : опрос не найден (неверный id/опрос в статусе "неактивный"/
                                 время опроса еще не наступило или уже закончилось)
choice_required  : в параметре choices не указан ни один пункт опроса
only_one_choice  : опрос позволяет выбирать только один пункт
cannot_revote    : пользователь уже голосовал и в данном опросе не разрешено менять выбор
wrong_choice_id  : в параметре choices как минимум один id не указывает на существующий активный пункт меню
anonymous_deny   : опрос не позволяет голосовать анонимно