0

我正在使用 Ruby 和 Plivo api 创建子帐户。

代码是:

AUTH_ID = "my_id"
AUTH_TOKEN = "my_token"

p = RestAPI.new(AUTH_ID, AUTH_TOKEN)
params = {'name' => 'thegreatone'}
response = p.create_subaccount(params)

// 到这里为止很好,并且(没有我在下面尝试访问 json 响应)它可以工作并且创建了帐户。

JSON响应是:

[{"auth_token"=>"ZjgxMGQwMTY2NGY3Nzk3ZmM3ZGE3ZmIxMGQyZWYy",
  "message"=>"created",
  "api_id"=>"2c1eff4a-b955-11e2-8361-123141011ae6",
  "auth_id"=>"SAMZBJOGZKZDIXMMEXNJ"}]

我想“提取”“auth_token”和“auht_id”,以便将它们插入到我的数据库中。

所以我尝试过(除其他外):

obj = JSON.parse(response)
:user_key = obj['auth_token']

我终端中的消息是:

语法错误,意外 '=',期待 $end

:user_key = obj['auth_token']

如何提取这些变量,然后将它们传递给我的插入查询?

我正在使用带有 SEQUEL、ruby 和 sinatra 的 postgres。

4

2 回答 2

3

您正在尝试为符号分配值,并且响应返回一个数组:

obj = JSON.parse(response)
:user_key = obj['auth_token'] 

应该

obj = JSON.parse(response).first
user_key = obj['auth_token'] 

符号不是变量,它们是常量。

于 2013-05-10T10:40:39.970 回答
0

响应是一个包含代码响应和数据的数组,因此您的代码应该是

obj = JSON.parse(response).last
user_key = obj['auth_token'] 

编辑:原来 gem 已经为你做了解析 plivo.rb。所以代码是:

obj = response.last
user_key = obj['auth_token'] 
于 2013-05-10T11:25:34.917 回答