OneSignal API推送报错‘All included players are not subscribed’求助
解决OneSignal API推送报错「All included players are not subscribed」的排查方向
移除或验证
target_channel参数
你设置了"target_channel": "push",但该字段可能限制了推送通道的匹配范围。尝试直接移除这个参数,让API自动适配设备的可用订阅通道;如果必须指定,确认目标设备的订阅通道确实为push(可通过OneSignal后台的玩家详情页查看)。确认订阅记录的真实状态
仪表盘显示已订阅不代表记录完全有效:- 调用
GET /api/v1/players/[SUBSCRIPTION_ID]接口,查看返回结果中subscribed字段是否为true,同时检查notification_types字段(值为1表示允许推送,2表示禁止)。 - 确认设备系统层面的推送权限未被禁用(比如iOS设置、Android应用通知权限),部分情况下权限变更未及时同步到OneSignal后台会导致API判断异常。
- 调用
检查请求体的格式与内容准确性
- 确保
app_id无多余空格、特殊字符,不要保留[MY_APP_ID]这类占位符。 - 使用
include_subscription_ids时,确认订阅ID完全匹配(OneSignal订阅ID区分大小写)。 - 简化请求体测试,只保留
app_id、included_segments、contents三个核心字段,排除冗余字段干扰。
- 确保
验证API密钥的权限范围
进入OneSignal后台Settings > Keys & IDs,检查REST API Key的权限,确保其拥有「发送通知」的权限,而非只读权限。排查多平台配置冲突
如果应用同时支持iOS/Android/Web等多平台,确认目标设备所属平台的配置无异常。部分平台的订阅需要特定参数适配,仪表盘会自动处理,但API调用时可能需要明确对应字段。
内容的提问来源于stack exchange,提问作者jmarkyston
相关产品推荐
相关产品推荐

