ServiceNow 推送通知卡在“待处理”中

Posted

技术标签:

【中文标题】ServiceNow 推送通知卡在“待处理”中【英文标题】:ServiceNow Push notifications stuck in "Pending" 【发布时间】:2017-01-06 14:58:11 【问题描述】:

我在ServiceNow 为自定义android 应用配置了推送通知。触发特定事件后,通知卡在“待处理”类型的系统日志中。

这里有更多细节:

用户可以在移动设备上登录自定义APP,并在sys_push_notif_app_install表中注册;

事件触发推送通知并成功写入系统日志;

在系统日志中,我可以看到消息本身,其中还提到了已注册的设备令牌。

现在消息在特定时间段内保持“待处理”状态,之后变为“失败”。

我们在 ServiceNow 中配置了一个推送应用程序,其中包含用于推送和反馈的 Goolge API 密钥和“REST API”值。

我还可以在系统日志中看到 2 条错误消息:

app="Push app name" origin="push.feedback" 
 Invalid Feedback REST Message: no thrown error


app="Push app name" origin="push.feedback" elapsed=8 
 exception encountered getting feedback: 
 java.lang.RuntimeException: feedback job does not have a valid 
 Feedback REST Message: com.glide.push.feedback.FeedbackClientRest.getFeedback(FeedbackClientRest.java:52)

高度赞赏任何想法。

【问题讨论】:

一个问题仍未解决,但到目前为止我已经发现了几点(未指定 SNow 文档)。根据 Google FCM 文档 (firebase.google.com/docs/cloud-messaging/server),我们需要在 ServiceNow 实例中修改现有的 OOTB Google REST 消息。必须改为:fcm.googleapis.com/fcm/send。此外,必须将 HTTP 标头添加到 REST 消息(这也可以在实例中轻松配置)。在 FCM 控制台设置 FCM 服务器密钥后,我们仍然在日志中遇到授权问题(用户名/密码组合无效)。 【参考方案1】:

我终于能够解决它。这里的关键点是确保推送应用程序设置正确。这是官方文档中没有明确说明的内容。所以对于安卓应用来说,这几点很重要:

推送 = 直接, 反馈 = REST, Google API 密钥 = FCM 服务器密钥(旧版和新版都可以正常工作)。

尽管 Google 建议为 REST 消息设置 HTTP 标头,但无论有没有它,通知都运行良好。因此,通常您可以保持开箱即用的 REST“Google Cloud Messaging Sent”不变。

【讨论】:

以上是关于ServiceNow 推送通知卡在“待处理”中的主要内容,如果未能解决你的问题,请参考以下文章

再次打开设备或 Internet 后,iOS 未收到待处理的 APNs 推送通知

通知栏+推送通知说明

在Phonegap中推送通知?

在关闭的应用程序上未收到推送通知

解析服务器不向大量受众发送推送通知

向 iOS 发送推送通知的问题,(云功能)