Crea un Strawpoll


12

Gli Strawpoll sono fantastici e li usiamo sempre in chat per ottenere opinioni sulle cose. Ma sono un po 'fastidiosi da realizzare poiché hai bisogno di un browser web per realizzarli e tutti sanno che accedo a PPCG solo attraverso le API SE e il ricciolo. Quindi voglio che tu scriva un po 'di codice che utilizza l'API di Strawpoll per creare un strawpoll con le opzioni fornite.

Specifiche

Prendi come input un elenco in qualsiasi formato ragionevole di opzioni come stringhe e un titolo che è anche una stringa. Quindi utilizzare l'API per creare un pagliolo con quel titolo e quelle opzioni e generare l'URL.

I multipli non dovrebbero essere consentiti, i controlli doppi dovrebbero essere applicati e i captcha non dovrebbero essere necessari.

Esempio

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

Uscita: http://strawpoll.me/7275997

Questo è , quindi vince il codice più breve in byte !


2
(Solo per aiutare tutti) TL; DR : fai questo:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Leaky Nun

1
" NOTA : è necessario specificare un'intestazione" Content-Type: application / json "nella richiesta."
Leaky Nun,

Il tipo di API non funziona, o almeno non funziona come dicono i documenti
cat

https://strawpoll.me/api/v2/pollsrisponde sempre con http 400
cat

Ti viene richiesto di restituire il pagliuzza http://? Posso tornare https://invece?
Valore inchiostro

Risposte:


3

Fattore, 257 262 byte

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 ]

Si aspetta un nome come primo arg della riga di comando, quindi opzioni dopo.

Richiede 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 + HTTParty : 129 byte

Funzione anonima; restituisce una stringa con l'URL strawpoll. Ricorda di installare la gemma HTTParty prima di eseguire.

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

Se l'URL può essere restituito con https://anziché http://126 byte:

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

Hai impostato l' Content-Type: application/jsonintestazione?
gatto

Ho ricevuto una risposta adeguata, quindi presumo che HTTParty lo faccia già per me.
Valore inchiostro

Questo gioiello non si installa, il che è davvero fastidioso poiché vorrei capire perché continuo a ricevere HTTP 400.
cat

Qual è la tua versione di Ruby? Ho aggiornato il mio alla versione che ho, e la gemma dice che ha bisogno di 1.9.3+
Value Ink
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.