【问题标题】:sending fcm notification messages to multiple android devices by registration_ids parameter通过registration_ids参数向多个android设备发送fcm通知消息
【发布时间】:2021-06-17 15:06:20
【问题描述】:

我想通过 fcm 从 php 服务器端通过调用此 url 向多个 android 设备(安装了相同的应用程序)发送通知 -

https://fcm.googleapis.com/fcm/send

我检查了向device groups 发送消息,但我的要求是没有明确的设备可以发送消息,因为我将在每小时一次的 cron 作业中执行它,并且每次 cron 作业运行它会根据需求向不同的不同设备发送通知消息。还是可以通过其他方式完成?

但我正在考虑使用 "registration_ids" 参数而不是 "to" 参数,这些字段的详细信息 here 在下游 HTTP 消息部分。在这个 registration_ids 字段中,我会将所有必需的设备注册令牌放入数组中。现在我的问题是在 android 设备中收到消息后,可以在 android app sdk 代码中解析消息吗?我有点怀疑,因为在这个documentation 中,在向多个安卓设备发送消息时没有提到registration_ids 参数。请向我保证。此外,当android应用程序在后台时会发送消息吗?!。请不要写一行,如果可能的话,提供一些例子。

【问题讨论】:

    标签: php android firebase firebase-cloud-messaging


    【解决方案1】:

    building requests to send to multiple devices 的文档中,您将找到在tokens 参数(在Node.js 中)中对FCM API 的一次调用中传递多个FCM 令牌的示例,或者通过使用带有多个子请求的HTTP 批处理请求(在 REST API 中)。

    如果您在完成这项工作时遇到困难,发布一个shows what you tried 的问题会增加有人帮助完成这项工作的机会。


    是的,无论应用是在前台还是在后台,消息都会发送。通知是否实际显示取决于更多因素,其中许多因素不在您的控制范围内(例如 Android 版本、设备制造商/OEM 和用户设置)。

    【讨论】:

    • 所以“registration_ids”参数也可以,不是像REST批处理请求一样服务吗?我的注意力集中在遗留的 http api 上 - fcm.googleapis.com/fcm/send 不是 v1 http api,我认为使用 v1 http api 的批处理请求。
    • 在旧版 API 上,您确实可以传递 registration_ids。很高兴听到你成功了。 ?
    • 是的,但是使用“registration_ids”我不能在每个消息中包含单独的消息正文参数。旧版 API 何时到期?我将很快切换到 v1 http api,这个批处理请求似乎使用了一个 batch_request.txt 文件,这似乎让人头疼,因为我需要为每个请求动态设置令牌,而不是任何预定义的设备令牌。
    • 目前没有淘汰旧 API 的计划,但积极的开发将专注于更新版本的 API。请求不需要是文本文件,但(与所有 HTTP 请求一样)它是文本请求。
    • 你能帮助我如何使用 php 的所有这些子请求创建一个 http 批处理请求吗?谷歌搜索对我没有帮助。批处理请求是像 curl 多调用一样同时并行发送所有请求,还是按顺序依次发送?如果我使用 curl multi 那么它将与批处理请求相同。
    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多