做草编


12

Strawpolls很棒,我们一直在聊天中使用它们来获取对事物的意见。但是制作它们有点烦人,因为您需要使用网络浏览器来制作它们,而且每个人都知道我只能通过SE API和curl访问PPCG。因此,我希望您编写一些代码,这些代码使用Strawpoll的API通过给定的选项制作秸秆。

眼镜

输入任何合理格式的选项列表作为字符串,标题也为字符串作为输入。然后,使用API​​使用该标题和这些选项制作秸秆,然后输出网址。

不允许使用倍数,应该执行重复检查,并且不需要验证码。

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

输出:http : //strawpoll.me/7275997

这是,因此以字节为单位的最短代码胜出!


2
(只为帮助所有人)TL; DR:这样做:https://strawpoll.me/api/v2/polls{"title":"This is a test poll.","options":["Option #1","Option #2"],"multi": true}
Leaky Nun

1
注意:您必须在请求中指定” Content-Type:application / json“标头。”
Leaky Nun

的API排序不工作,或至少它不喜欢的文档没有工作说它

https://strawpoll.me/api/v2/polls总是以http 400回应
cat

您是否需要将稻草还还http://?我可以https://代替吗?
价值墨水

Answers:


3

因子,257个 262字节

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 ]

应将名称作为第一个命令行参数,然后再输入选项。

需要com-auto-use

取消高尔夫:

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个字节

匿名函数;返回带有秸秆网址的字符串。记住在运行之前安装HTTParty gem。

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

如果可以使用https://代替,返回http://126个字节的网址:

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

您设置Content-Type: application/json标题了吗?
2016年

我得到了适当的答复,因此我认为HTTParty已经为我做到了。
价值墨水

这种宝石将不会安装,这实在是烦人,因为我想弄清楚为什么我不断收到HTTP 400

您的Ruby版本是什么?我将我的版本更新为我拥有的版本,而宝石说它需要1.9.3+
Value Ink
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.