OneSignal 推送通知发送给所有用户而不是一个玩家

Posted

技术标签:

【中文标题】OneSignal 推送通知发送给所有用户而不是一个玩家【英文标题】:OneSignal push notification sending to all user instead of one player 【发布时间】:2020-12-07 08:48:07 【问题描述】:

我正在尝试通过存储在我的数据库中的 player_id 向一台设备发送推送通知。 但是它会尝试继续发送给所有用户 我不知道我的代码有什么问题

  $fields = array(
            'app_id' => 'XXXXXXXXXXXXXXXXXXXX',
            'include_player_ids ' => $player_ids,
            'included_segments' => array(
                'All'
            ),
            'data' => $data,
            'headings' => $title,
            'contents' => $content,
            'web_buttons' => []
        );

        $fields = json_encode($fields);
        if($player_ids) 
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json; charset=utf-8',
                'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
            ));
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, FALSE);
            curl_setopt($ch, CURLOPT_POST, TRUE);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

            $response = curl_exec($ch);

            curl_close($ch);

【问题讨论】:

【参考方案1】:

只需删除'included_segments' => array('All'),

如果您同时填写included_segmentsinclude_player_ids,您将发送给所有选定的玩家ID 以及所有选定的段。 Segment All 表示所有订阅者。

你可以在official documentation阅读其他选项

【讨论】:

它给了我一个错误信息"errors":["You must include which players, segments, or tags you wish to send this notification to."]【参考方案2】:

我需要删除 included_segmentsweb_buttons 他们俩都不仅仅是included_segments,当我尝试删除included_segments时,它给了我"errors":["You must include which players, segments, or tags you wish to send this notification to."]的错误 我也不需要'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

【讨论】:

以上是关于OneSignal 推送通知发送给所有用户而不是一个玩家的主要内容,如果未能解决你的问题,请参考以下文章

根据 OneSignal 的用户数据库直接发送 Web 推送 (Chrome - GCM/FCM) 通知

在 PHP 中向特定用户推送通知

OneSignal 推送通知序列(顺序)不正确

如何在没有 OneSignal Dashboard 的情况下发送推送通知?

向移动设备推送通知:SNS vs OneSignal vs GCM [关闭]

Ionic - 一个信号推送通知发送两次