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 !


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 ;

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.