You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境Ruby on Rails中如何从FCM响应提取body属性值

如何从FCM推送响应中提取body属性的值?

嘿,作为Ruby on Rails新手,我完全懂你想快速从FCM响应里拿到目标值的需求!咱们直接来搞定这个事儿~

首先,你调用fcm.send()得到的response是一个Ruby哈希(FCM gem返回的结果默认就是哈希格式),你要的body属性嵌套在data字段下面,分两种情况处理:

情况1:只需要原始的JSON字符串格式的body值

如果你只是要那个包含multicast_id、success等信息的JSON字符串,直接通过哈希键取值就行:

# 先获取FCM响应
response = fcm.send([device_token], options)

# 提取data中的body值(注意如果你的响应是字符串键,就用response["data"]["body"])
target_body = response[:data][:body]

这时候target_body就是你要的那个body属性的值啦。

情况2:需要解析body里的具体字段

要是你还想从这个JSON字符串里拿到具体的字段(比如multicast_id或者成功推送的数量success),那得把JSON字符串转换成Ruby哈希来操作:

# Rails默认已经包含JSON库,不需要额外安装
require 'json'

# 先拿到原始的body字符串
body_str = response[:data][:body]

# 把JSON字符串解析成Ruby哈希
body_hash = JSON.parse(body_str)

# 现在就可以直接提取具体字段了
multicast_id = body_hash["multicast_id"]
success_count = body_hash["success"]
message_id = body_hash["results"][0]["message_id"]

你可以用puts打印结果来验证:

puts target_body # 打印原始JSON字符串
puts success_count # 打印成功推送的数量

内容的提问来源于stack exchange,提问作者Pinki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:56:23