C# GCM 未注册

Posted

技术标签:

【中文标题】C# GCM 未注册【英文标题】:C# GCM NotRegistered 【发布时间】:2018-09-13 22:44:37 【问题描述】:

我收到 GCM 响应 NotRegistered,我知道它可能是过期的 registration_id。但是,GCM 响应没有给我“registration_id”或“canonical_ids”来替换过时的注册。

回复:


    "multicast_id": -1,
    "success": 0,
    "failure": 1,
    "canonical_ids": 0,
    "results": [
        
            "error": "NotRegistered"
        
    ]

有人知道我必须做什么才能获得新的registration_id吗?

谢谢。

【问题讨论】:

嗨。你真的还在使用 GCM 吗?或者这应该被标记为 FCM? 嗨。是的,我们在我工作的公司中使用 GCM 和 FCM。 GCM 是遗留系统,我们将改为 FCM。但是,现在我想解决这个过期令牌问题,然后再实施 FCM。 【参考方案1】:

根据GCM/FCM documentation,NotRegistered 表示提供的注册令牌不再注册。以前有效的注册令牌可能因多种原因而被取消注册,包括:

客户端应用程序已从 FCM 中取消注册。 客户端应用程序已自动取消注册。如果用户卸载应用程序,或者在 ios 上,如果 APNS 反馈服务报告 APNS 令牌无效,则可能会发生这种情况。 注册令牌已过期。例如,Google 可能决定刷新注册令牌,或者 iOS 设备的 APNS 令牌可能已过期。 客户端应用已更新,但新版本未配置为接收消息。

对于所有这些情况,请移除此注册令牌并停止使用它来发送消息。

在该设备上调用 FirebaseInstanceId.getInstance().getInstanceId() 应该会返回一个新的有效令牌。

【讨论】:

以上是关于C# GCM 未注册的主要内容,如果未能解决你的问题,请参考以下文章

GCM IOS 未注册问题

卸载应用时 GCM 未取消注册设备

GCM 通知结果=[错误=未注册]

从未调用 gcm.unregister() 时出现意外的 gcm 未注册消息

Android GCM“错误”:“未注册”

gcm推送通知:先成功,后IOS未注册