-3

我正在为 Facebook Messenger 开发一个应用程序,并且我从 Messenger 获得了这个参数。我想获取这些参数并存储发件人、文本和其他数据。但我无法在控制器中获取这些参数。

当我尝试params[:text]时它不起作用,如果我尝试params[:entry][:messaging][1]或类似的东西不起作用。

{"object":"page",
  "entry":[
    {
      "id":"PAGE_ID",
      "time":1460245674269,
      "messaging":[
        {
          "sender":{
            "id":"USER_ID"
          },
          "recipient":{
            "id":"PAGE_ID"
          },
          "timestamp":1460245672080,
          "message":{
            "mid":"mid.1460245671959:dad2ec9421b03d6f78",
            "seq":216,
            "text":"hello"
          }
        }
      ]
    }
  ]
}

如果你能告诉我如何编写我的控制器,这样我就可以从 [:text] 中获取价值,那就太好了。谢谢。

4

1 回答 1

0

您只需简单地解析您的 JSON 并抓取,直到您达到指定的键,您的情况是您想要获取文本键

这样做:

我假设您获得的 JSON 已分配给json_value变量:

json_value = '{"object":"page",
  "entry":[
    {
      "id":"PAGE_ID",
      "time":1460245674269,
      "messaging":[
        {
          "sender":{
            "id":"USER_ID"
          },
          "recipient":{
            "id":"PAGE_ID"
          },
          "timestamp":1460245672080,
          "message":{
            "mid":"mid.1460245671959:dad2ec9421b03d6f78",
            "seq":216,
            "text":"hello"
          }
        }
      ]
    }
  ]
}'

接下来,解析 JSON:

json = JSON.parse(json_value)

然后现在,您可以通过以下方式获得所需的值:

json["entry"][0]["messaging"][0]["message"]["text"]

输出:

=> "hello"

示范

于 2016-04-15T03:48:57.803 回答