Faire un Strawpoll

12

Les Strawpolls sont excellents, et nous les utilisons tout le temps pour discuter des choses. Mais ils sont un peu ennuyeux à faire car vous avez besoin d'un navigateur Web pour les faire, et tout le monde sait que j'accède à PPCG uniquement via les API SE et curl. Je veux donc que vous écriviez du code qui utilise l'API de Strawpoll pour créer un sweepoll avec les options données.

Spécifications

Prenez comme entrée une liste dans n'importe quel format raisonnable d'options sous forme de chaînes, et un titre qui est également une chaîne. Ensuite, utilisez l'API pour créer un swepoll avec ce titre et ces options et afficher l'url.

Les multiples ne devraient pas être autorisés, la vérification des doublons devrait être appliquée et les captchas ne devraient pas être nécessaires.

Exemple

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

Sortie: http://strawpoll.me/7275997

C'est le , donc le code le plus court en octets gagne!

Maltysen
la source
2
(Juste pour aider tout le monde) TL; DR : faites ceci:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Leaky Nun
1
" REMARQUE : Vous devez spécifier un en-tête" Content-Type: application / json "dans votre demande."
Leaky Nun
Le type d'API ne fonctionne pas, ou du moins il ne fonctionne pas comme le disent les docs
cat
https://strawpoll.me/api/v2/pollsrépond toujours par http 400
cat
Devez-vous rendre le paille http://? Puis-je revenir à la https://place?
Value Ink

Réponses:

3

Facteur, 257 262 octets

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 ]

Attend un nom comme premier argument de ligne de commande, puis des options après cela.

Requiert com-auto-use.

Non golfé:

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 ;
chat
la source
1

Ruby 2.2.4 + HTTParty : 129 octets

Fonction anonyme; renvoie une chaîne avec l'URL de sweepoll. N'oubliez pas d'installer la gemme HTTParty avant de lancer.

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

Si l'URL peut être retournée avec https://au lieu de http://126 octets:

->q,a{require'httparty';s="https://strawpoll.me/%s"
s%HTTParty.post(s%"api/v2/polls",body:{title:q,options:a},verify:p)["id"]}
Encre de valeur
la source
Avez-vous défini l'en- Content-Type: application/jsontête?
chat
J'ai reçu une réponse correcte, donc je suppose que HTTParty le fait déjà pour moi.
Value Ink
Ce bijou ne s'installe pas, ce qui est vraiment ennuyeux car j'aimerais comprendre pourquoi je continue à obtenir HTTP 400.
cat
Quelle est votre version Ruby? J'ai mis à jour la mienne vers la version que j'ai, et le joyau dit qu'il a besoin de la version 1.9.3+
Value Ink