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!


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 ;

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.