Buat Sedotan

12

Strawpoll sangat bagus, dan kami menggunakannya dalam obrolan setiap saat untuk mendapatkan pendapat tentang berbagai hal. Tapi itu agak menjengkelkan karena Anda membutuhkan browser web untuk membuatnya, dan semua orang tahu bahwa saya mengakses PPCG hanya melalui API SE dan ikal. Jadi saya ingin Anda menulis beberapa kode yang menggunakan API Strawpoll untuk membuat strawpoll dengan opsi yang diberikan.

Spesifikasi

Ambil sebagai masukan daftar dalam format opsi apa pun yang masuk akal sebagai string, dan judul yang juga merupakan string. Kemudian gunakan API untuk membuat strawpoll dengan judul itu dan opsi-opsi itu dan output url.

Kelipatan tidak boleh diizinkan, pemeriksaan rangkap harus ditegakkan, dan captcha tidak perlu.

Contoh

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

Output: http://strawpoll.me/7275997

Ini adalah , jadi kode terpendek dalam byte menang!

Maltysen
sumber
2
(Hanya untuk membantu semua orang) TL; DR : lakukan ini:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Leaky Nun
1
" CATATAN : Anda harus menentukan header" Tipe Konten: aplikasi / json "dalam permintaan Anda."
Leaky Nun
Semacam API tidak berfungsi, atau setidaknya tidak berfungsi seperti yang dikatakan oleh docs
Cat
https://strawpoll.me/api/v2/pollsselalu merespons dengan http 400
cat
Apakah Anda harus mengembalikan strawpoll http://? Bisakah saya kembali https://saja?
Nilai Tinta

Jawaban:

3

Faktor, 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 ]

Mengharapkan nama sebagai arg baris perintah pertama, lalu opsi setelah itu.

Membutuhkan com-auto-use.

Tidak Disatukan:

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 ;
kucing
sumber
1

Ruby 2.2.4 + HTTParty : 129 byte

Fungsi anonim; mengembalikan string dengan URL strawpoll. Ingatlah untuk menginstal permata HTTParty sebelum dijalankan.

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

Jika URL dapat dikembalikan dengan https://alih - alih 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"]}
Nilai Tinta
sumber
Apakah Anda mengatur Content-Type: application/jsontajuk?
kucing
Saya mendapat respons yang tepat, jadi saya berasumsi bahwa HTTParty sudah melakukannya untuk saya.
Value Ink
Permata ini tidak mau dipasang, yang benar-benar menjengkelkan karena saya ingin mencari tahu mengapa saya terus mendapatkan HTTP 400.
cat
Apa versi Ruby Anda? Saya memperbarui milik saya ke versi yang saya miliki, dan permata mengatakan itu perlu 1.9.3+
Nilai Tinta