gpt4 book ai didi

android - 使用 FCM 从 Rails api 向 Android 推送通知未发送通知?

转载 作者:行者123 更新时间:2023-11-30 00:23:55 27 4
gpt4 key购买 nike

我在 rails 5 中编写 Api Rest,使用 gem 'fcm' 发送通知。我已经在我的 android 应用程序中配置了 firebase,我可以从 Firebase 控制台成功发送通知,但是从我的 rails api 我无法在我的设备中收到通知,这是我的代码:

这是我的 Rails Controller :

class AccionesController < ApplicationController
def enviar

require 'fcm'

fcm = FCM.new("AAAAlBfTsV4:AheregoesmySERVEKEYsXXm-vQGfMjVuo8TpYrApHsnGU4ZasdfajsdfñalUtf26LeND4U4lXFZZplpzJjTWoiisWP-Esl5afCSTmiDI9y5gP6OObqY76NVcOn9ceaIUGMZ")

# fcm = FCM.new("my_server_key", timeout: 3)

registration_ids= [params[:devicetoken]] # an array of one or more client registration tokens
options = {data: {score: "mynewscore"},
notification: {
title: "Message Title",
body: "Hi, Worked perfectly",
icon: "myicon"}
,collapse_key: "testeando desde rails", priority: "high"}
response = fcm.send(registration_ids, options)
render json: response
end

def noti_params
params.permit(:devicetoken)
end
end

我从 Postman 执行这是执行 Controller 的路由:

http://localhost:3000/acciones/enviar?here将设备 token 作为参数

然后,这是响应:

{"body":"{\"multicast_id\":5276983113254623155,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1502991819420287%2293308c2293308c\"}]}","headers":{"content-type":["application/json; charset=UTF-8"],"date":["Thu, 17 Aug 2017 17:43:39 GMT"],"expires":["Thu, 17 Aug 2017 17:43:39 GMT"],"cache-control":["private, max-age=0"],"x-content-type-options":["nosniff"],"x-frame-options":["SAMEORIGIN"],"x-xss-protection":["1; mode=block"],"server":["GSE"],"alt-svc":["quic=\":443\"; ma=2592000; v=\"39,38,37,35\""],"accept-ranges":["none"],"vary":["Accept-Encoding"],"connection":["close"]},"status_code":200,"response":"success","canonical_ids":[],"not_registered_ids":[]}

响应显示成功:1 和状态代码:200 但通知从未到达设备,并且 firebase 控制台不显示消息。

我错过了什么吗?

请帮忙?

或者是否有另一种方式或 ruby​​ gem 发送带有清晰示例的通知?

欢迎提出任何建议...提前致谢

最佳答案

除了使用 fcm gem,您还可以使用 RestClient gem。 fcm通知的用法如下。需要注意的是,如果有效负载使用“.to_json”传递,则 header 内容类型也必须指定为json。希望对您有所帮助。

def self.send_noti(device_token)
options = data().merge ({"to": "#{device_token}"})
RestClient.post("https://fcm.googleapis.com/fcm/send", options.to_json, headers={'Content-Type' => 'application/json','Authorization' => "key=#{ENV['fcm_token']}"})
end

def self.data()
options = {
"notification": {
"body": "Your noti body",
"title": "Your noti title"
},
"data": {
"d1": "Your data" #can be any, d1, status or whatever
}
}

end

rest-client gem

关于android - 使用 FCM 从 Rails api 向 Android 推送通知未发送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com