繁体   English   中英

卷曲到Ruby请求以连接到wheniwork

[英]curl to Ruby request for connecting to wheniwork

背景故事

我花了几天的时间在Ruby gem上工作 ,这真是一场噩梦。 长话短说,gem依赖于旧版本的activesupport,我基本上分叉了他们的仓库,并为我的ruby项目制作了兼容版本。 我能够创建一个新的gem并尝试使用它,但是却收到以下json消息:

{"error"=>"User login required for this resource.", "code"=>1000}

用户名,密码和api密钥已设置。 我基本上需要做的是访问我们的帐户,并检索数据。

这是使用curl命令的示例

curl https://api.wheniwork.com/2/login \
  --data '{"username":"user@example.com","password":"*******"}' \
  -H "W-Key: iworksoharditsnotfunny"

从本质上讲,我会从wheniwork中获取某种包含令牌的返回对象。 我会将此标记用于以后向wheniwork网站的请求。

至(Ruby)

将其转换为Ruby的新尝试

require 'net/http'


data = {'credentials' => {'username' => 'XXXXX@XXXXX.com','password' => 'XXXXX', 'W-Key' => '111111111XXXXX'}}

uri = URI.parse("https://api.wheniwork.com/2/login/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(uri.path, initheader = {'Content-Type' =>'application/json'})
request.add_field('Content-Type', 'application/json')
request.body = data.to_json
response = http.request(request)

结果:

#<Net::HTTPUnauthorized 401 Unauthorized readbody=true>

如果您有任何想法或线索(或基本上有什么可以帮助我的想法),我将不胜感激。 谢谢!

得到它了!! 主要问题是api密钥和(用户名和密码)组合是两个单独的部分。

我一直都这么近,但是在这里:

  data = {'username' => 'XXXX@XXXXXXX.com','password' => 'XXXXX'}

  uri = URI.parse("https://api.wheniwork.com/2/login/")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Post.new(uri.path)
  request.add_field('W-Key', 'XXXXXXXXXXXXX')
  request.body = data.to_json
  response = http.request(request)

  puts JSON.parse(response.body)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM