我正在开发rails应用程序上的ruby,我想向iOS设备发送推送通知。我正在使用gorcer gem,我也有兴趣得到一些反馈,但我不能让它工作。我正在关注git教程(https://github.com/grocer/grocer#feedback)。
feedback = Grocer.feedback(
certificate: "/path/to/cert.pem", # required
passphrase: "", # optional
gateway: "feedback.push.apple.com", # optional; See note below.
port: 2196, # optional
retries: 3 # optional
)
feedback.each do |attempt|
puts "Device #{attempt.device_token} failed at #{attempt.timestamp}"
end
控制台总是返回nil。
我尝试禁用推送通知并取消暂停ios应用以检查是否有任何反馈,但我没有收到任何反馈。
有谁知道发生了什么事?
提前谢谢。
答案 0 :(得分:0)
我相信您的代码是正确的,并且.each循环在您的示例中运行(如果反馈服务返回至少1个失败的推送通知)。
我认为Grocer中存在一个错误,它只允许反馈服务一次迭代,然后反馈对象设置为nil。请参阅此错误:https://github.com/grocer/grocer/issues/80
我认为这解释了代码实际可行的原因,但后来却没有在控制台中返回任何内容。
作为旁注,似乎测试APN反馈服务的最佳方式是通过生产或临时应用注册有效的设备令牌。然后从您的设备中删除该应用,并向该令牌发送另一个推送通知。反馈服务似乎立即(并且可重复地)将其记录为失败的尝试。