有没有人在使用 Pushwoosh 远程 api 向特定设备发送自定义通知方面取得过任何成功?我已经查看了他们的文档以进行设置,但通知一直发送到所有设备。我在这里做错了什么?提前致谢。

<?php


define('PW_AUTH', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('PW_APPLICATION', 'XXXXXX-XXXXXX');
define('PW_DEBUG', true);

function pwCall($method, $data = array()) {


    $url = 'https://cp.pushwoosh.com/json/1.3/' . $method;
    $request = json_encode(['request' => $data]);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);

    $response = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);

    if (defined('PW_DEBUG') && PW_DEBUG) {
        print "[PW] request: $request\n";
        print "[PW] response: $response\n";
        print "[PW] info: " . print_r($info, true);
    }
}
pwCall('createMessage', array(
                  'application' => PW_APPLICATION,
                  'auth' => PW_AUTH,
                  'notifications' => array(
                          array(

                              'send_date' => 'now',
                              'content' => 'Send this content to user',

                          )


                  ),

                  'devices' => array('2lksdflkje96a4389f796173fakeae938device95ajkdh8709843') //Optional. Not more than 1000 tokens in an array. If set, message will only be delivered to the devices in the list. Ignored if the applications group is used


          )
        );
?>

最佳答案

您必须将设备列表指定到通知数组中。请参阅下面的正确请求(也可在此处获得 Pushwoosh API 文档 https://www.pushwoosh.com/programming-push-notification/pushwoosh-push-notification-remote-api/#PushserviceAPI-Method-messages-create )

   <?php
    define('PW_AUTH', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
    define('PW_APPLICATION', 'XXXXXX-XXXXXX');
    define('PW_DEBUG', true);

    function pwCall($method, $data = array()) {
        $url = 'https://cp.pushwoosh.com/json/1.3/' . $method;
        $request = json_encode(['request' => $data]);

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $request);

        $response = curl_exec($ch);
        $info = curl_getinfo($ch);
        curl_close($ch);

        if (defined('PW_DEBUG') && PW_DEBUG) {
            print "[PW] request: $request\n";
            print "[PW] response: $response\n";
            print "[PW] info: " . print_r($info, true);
        }
    }
    pwCall('createMessage', array(
                      'application' => PW_APPLICATION,
                      'auth' => PW_AUTH,
                      'notifications' => array(
                              array(
                                  'send_date' => 'now',
                                  'content' => 'Send this content to user',
                                  'devices' => array('2lksdflkje96a4389f796173fakeae938device95ajkdh8709843') //Optional. Not more than 1000 tokens in an array. If set, message will only be delivered to the devices in the list. Ignored if the applications group is used
                              )
                      ),
              )
            );
    ?>

关于php - 使用 Pushwoosh 和 PHP 向特定设备发送通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28986060/

10-12 15:24