Сделайте Strawpoll

12

Strawpolls великолепны, и мы постоянно используем их в чате, чтобы узнать мнение о вещах. Но их довольно раздражает, потому что вам нужен веб-браузер, и все знают, что я обращаюсь к PPCG только через SE API и curl. Итак, я хочу, чтобы вы написали некоторый код, который использует API Strawpoll для создания соломинки с заданными параметрами.

Спекуляции

Возьмите в качестве входных данных список в любом приемлемом формате параметров в виде строк и заголовок, который также является строкой. Затем с помощью API создайте список с этим названием и этими опциями и выведите URL.

Нельзя допускать многократные операции, следует проводить проверку на наличие дубликатов и вводить капчи.

пример

"My Awesome Poll"
["option 1", "I like pies", "I also like cakes"]

Выход: http://strawpoll.me/7275997

Это , поэтому выигрывает самый короткий код в байтах !

Maltysen
источник
2
(Просто чтобы помочь всем) TL; DR : сделай так:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Leaky Nun
1
« ПРИМЕЧАНИЕ . Вы должны указать в своем запросе заголовок« Content-Type: application / json ».»
Утренняя монахиня
API-интерфейс не работает, или, по крайней мере, он не работает так, как говорят документы
cat
https://strawpoll.me/api/v2/pollsвсегда отвечает http 400
кошка
Требуется ли вам вернуть соломенный пул http://? Могу ли я вернуться https://вместо этого?
Стоимость чернил

Ответы:

3

Фактор, 257 262 байта

TUPLE: p title options dupcheck ;
[ command-line rest [ first ] [ rest ] bi "normal" p boa >json "https://strawpoll.me/api/v2/polls" <post-request> "application/json" "Content-Type" set-header http-request nip json> id>> 10 base> "http://strawpoll.me/" prepend ]

Ожидается имя в качестве первого аргумента командной строки, затем параметры после этого.

Требуется com-auto-use.

Ungolfed:

TUPLE: poll
  title options dupcheck ;

: post-json ( post-data url -- response data )
  <post-request>
    "application/json" "Content-Type" set-header
  http-request ;

: strawpoll-main ( -- )
  command-line rest [ first ] [ rest ] bi "normal" poll boa
  >json "https://strawpoll.me/api/v2/polls" post-json nip
  json> id>> 10 base> "http://strawpoll.me/" prepend print ;
Кот
источник
1

Ruby 2.2.4 + HTTPart : 129 байт

Анонимная функция; возвращает строку с URL-адресом strawpoll. Не забудьте установить гем HTTParty перед запуском.

->q,a{require'httparty';s="http%s://strawpoll.me/%s"
s%[p,HTTParty.post(s%[?s,"api/v2/polls"],body:{title:q,options:a},verify:p)["id"]]}

Если URL может быть возвращен с, https://вместо http://126 байтов:

->q,a{require'httparty';s="https://strawpoll.me/%s"
s%HTTParty.post(s%"api/v2/polls",body:{title:q,options:a},verify:p)["id"]}
Значение чернил
источник
Вы установили Content-Type: application/jsonзаголовок?
кот
Я получил правильный ответ, поэтому я предполагаю, что HTTParty уже делает это для меня.
Value Ink
Этот гем не будет установлен, что очень раздражает, так как я хотел бы выяснить, почему я продолжаю получать HTTP 400.
cat
Какая у тебя версия для Ruby? Я обновил свою версию до версии, которая у меня есть, и гем говорит, что ей нужна 1.9.3+
Value Ink