Zrób Strawpoll

12

Strawpolls są świetne i używamy ich przez cały czas na czacie, aby uzyskać opinie na różne tematy . Ale to trochę denerwujące, ponieważ potrzebujesz przeglądarki internetowej, aby je zrobić, i wszyscy wiedzą, że uzyskuję dostęp do PPCG tylko za pośrednictwem interfejsów API SE i curl. Więc chcę, żebyś napisał kod, który używa API Strawpoll do stworzenia słomy z podanymi opcjami.

Okular

Weź jako dane wejściowe listę w dowolnym rozsądnym formacie opcji jako ciągi oraz tytuł, który jest również ciągiem. Następnie użyj interfejsu API, aby utworzyć słomkę z tym tytułem i tymi opcjami i wyślij adres URL.

Wielokrotności nie powinny być dozwolone, sprawdzanie duplikatów powinno być wymuszone, a captchas nie powinny być konieczne.

Przykład

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

Dane wyjściowe: http://strawpoll.me/7275997

To jest , więc wygrywa najkrótszy kod w bajtach !

Maltysen
źródło
2
(Tylko po to, aby wszystkim pomóc) TL; DR : zrób to:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Dziurawy zakonnica
1
UWAGA : Musisz podać nagłówek„ Content-Type: application / json ”we wniosku.”
Leaky Nun
API nie działa, a przynajmniej nie działa tak, jak mówią doktorzy
cat
https://strawpoll.me/api/v2/pollszawsze odpowiada http 400
kot
Czy musisz zwrócić słomę http://? Czy mogę https://zamiast tego wrócić ?
Wartość tuszu

Odpowiedzi:

3

Współczynnik, 257 262 bajtów

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 ]

Oczekuje nazwy jako pierwszego argumentu wiersza polecenia, a następnie opcji.

Wymaga com-auto-use.

Nie golfowany:

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 ;
kot
źródło
1

Ruby 2.2.4 + HTTParty : 129 bajtów

Funkcja anonimowa; zwraca ciąg z adresem URL strawpoll. Pamiętaj, aby zainstalować gem HTTParty przed uruchomieniem.

->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"]]}

Jeśli https://zamiast adresu URL można zwrócić http://, 126 bajtów:

->q,a{require'httparty';s="https://strawpoll.me/%s"
s%HTTParty.post(s%"api/v2/polls",body:{title:q,options:a},verify:p)["id"]}
Wartość tuszu
źródło
Czy ustawiłeś Content-Type: application/jsonnagłówek?
kot
Otrzymałem właściwą odpowiedź, więc zakładam, że HTTParty już to dla mnie robi.
Wartość tuszu
Ten klejnot się nie instaluje, co jest naprawdę denerwujące, ponieważ chciałbym dowiedzieć się, dlaczego wciąż otrzymuję HTTP 400.
Cat
Jaka jest twoja wersja Ruby? Zaktualizowałem mój do wersji, którą posiadam, a klejnot mówi, że potrzebuje wersji 1.9.3+
Wartość tuszu