【问题标题】:Unsubscribe from a topic in FCM Web取消订阅 FCM Web 中的主题
【发布时间】:2017-08-14 07:44:48
【问题描述】:

我在我的网站中成功设置了 FCM,它运行良好。我正在使用 JavaScript 通过订阅向“电影”主题发送通知。

fetch('https://iid.googleapis.com/iid/v1/'+tokenz+'/rel/topics/movies', {
          method: 'POST',
          headers: new Headers({
            'Authorization': 'key=****'
          })

我没有找到任何使用 JS 取消订阅 Web 主题的文档。取消订阅单个主题的最佳方式是什么?还有取消订阅所有主题的方法吗?

【问题讨论】:

    标签: javascript firebase push-notification firebase-cloud-messaging


    【解决方案1】:

    好问题。我从来没有真正想到没有建议的方式/指南来取消订阅FCM Web in the documentation 的主题。

    如您所知,为了订阅某个主题,您必须使用Instance ID API。所以我认为你应该使用相同的。我已经浏览了这些文档,但没有提到在取消订阅来自单个/多个主题的单个令牌时要使用的任何内容。

    话虽如此,我现在建议使用batchRemove 取消订阅某个主题的特定令牌。文档中的示例:

    https://iid.googleapis.com/iid/v1:batchRemove
    Content-Type:application/json
    Authorization:key=API_KEY
    {
       "to": "/topics/<YOUR TOPIC NAME HERE>",
       "registration_tokens": ["<YOUR TOKEN HERE>"]
    }
    

    我也尝试了DELETE API,但它会删除注册令牌本身(即使其无效)。

    【讨论】:

    • 正如你提到的,我没有在订阅上发帖,而是使用了 delete 并且它有效。所以,我所要做的就是将 method: 'POST' 更改为 method:'DELETE' 并将其发送给 unsubscibe。
    • 请记住,DELETE 将使令牌无效。你必须重新生成一个新的。推荐的方式是只使用batchRemove
    • AL 的好观点。 DELETE API 之所以有效,是因为它会删除 IID 令牌本身。虽然设备不会再收到来自所需主题的推送通知,但它也不会收到任何通知,这可能不是您想要的。
    • 可笑的是,Google 没有提供记录在案的方法。
    • @jamis0n 实例 ID 令牌是 registration token
    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 2017-09-07
    • 2019-11-11
    • 2017-05-07
    • 2016-10-31
    • 1970-01-01
    • 2019-12-21
    • 2019-01-24
    相关资源
    最近更新 更多