简体   繁体   English

从php发送pushwoosh发送推送通知

[英]Sending Push notification through pushwoosh from php

I am trying to send push notification through push woosh such like this : 我试图通过推送woosh发送推送通知,如下所示:

is anybody help me how to send push notification on device from this code 有人帮我如何从这个代码发送设备上的推送通知

function pwCall( 'createMessage' , array( function pwCall( 'createMessage' ,array(

        'application' => PW_APPLICATION,          

        'auth' => PW_AUTH,

        "devices" => PW_DEVICETOKEN,

        'notifications' =>  array(

                    'send_date' =>'now', //gmdate('d-m-Y H:i', strtotime('2014-04-07 20:35')),

                    'content' => 'my custom notification testing ',

    'link' => 'http://pushwoosh.com/',

                    'content' => array("en" => "English","ru" =>"Русский","de"=>"Deutsch")

                    ),

                  'page_id' => 16863,

                  'link' => 'http://google.com',

                 'data' => array( 'custom' => 'json data' ),   
            )
    );

I am getting error such as 我收到的错误如

Array ( [status_code] => 210 [status_message] => Cannot parse date [response] => ) 数组([status_code] => 210 [status_message] =>无法解析日期[response] =>)

  1. notifications should be array of objects in JSON notation. 通知应该是JSON表示法中的对象数组。 In PHP it will be array of arrays. 在PHP中,它将是数组数组。 This is because you can create multiple notifications in one request. 这是因为您可以在一个请求中创建多个通知。 final JSON for notifications field: 通知字段的最终JSON:

    "notifications":[{ ... notification properties... }, { ... second notification properties ... }, ...] “通知”:[{...通知属性...},{...第二通知属性...},...]

  2. There are only 3 root parameters in request: application (OR applications_group ), auth , and notifications . 请求中只有3个根参数: application (OR applications_group ), authnotifications Other parameters are parameters of notification, not request. 其他参数是通知参数,而不是请求。

Finally your PHP call should be like following: 最后你的PHP调用应该如下:

pwCall("createMessage", array(
  "auth" => PW_AUTH,
  "application" => PW_APPLICATION,
  "notifications" => array(
    array(
      "send_date" => "now",
      "content" => array("en" => "English", "ru" =>"Русский", "de"=>"Deutsch"),
      "link" => "http://pushwoosh.com/",
      "page_id" => 16863,
      "devices" => array( PW_DEVICETOKEN ),
      "data" => array( "custom" => "json data" )
    )
  )
));

All notification's fields except of send_date and content are optional and can be omited send_date内容之外的所有通知字段都是可选的,可以省略

By the looks of it, your date is not formatted correctly. 根据它的外观,您的日期格式不正确。 You're passing an ordinary string consisting of the word "now". 你传递的是一个由“now”组成的普通字符串。 What you'll want to do is something along the lines of the following: 你想要做的是以下几点:

function pwCall("createMessage", array(
    "application"   => PW_APPLICATION,          
    "auth"          => PW_AUTH,
    "devices"       => PW_DEVICETOKEN,
    "notifications" => array(
        "send_date" => gmdate("Y-m-d H:i"),
        "content"   => "My custom notification",
        "link"      => "http://pushwoosh.com/",
        "content"   => array("en" => "English", "ru" =>"Русский", "de"=>"Deutsch")
    ),
    "page_i" => 16863,
    "link"   => "http://google.com",
        "data" => array("custom" => "json data"),   
    )
);

we've developped an API to easily call the Pushwoosh Web Services. 我们开发了一个API来轻松调用Pushwoosh Web服务。

This API should be a good quality one and is fully tested (very high code coverage). 这个API应该是一个高质量的API并且经过全面测试(非常高的代码覆盖率)。

https://github.com/gomoob/php-pushwoosh https://github.com/gomoob/php-pushwoosh

$push_auth = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$push_app_id = 'XXXXX-XXXXX';
$push_debug = false;
$title = ''; // pushwoosh title
$banner = ''; // pushwoosh banner
$send_date = 'now'; // pushwoosh date
$android_header = '';    // pushwoosh android header 
$android_custom_icon = '' pushwoosh notification icon;
sendpush('createMessage', array(
                    'application' => $push_app_id,
                    'auth' => $push_auth,
                    'notifications' => array(
                        array(
                            'send_date' => $send_date,
                            'content' => $title,
                            'android_header'=>$android_header,
                            'android_custom_icon' =>$android_custom_icon,
                            'android_badges' => 2,
                            'android_vibration' => 1,                
                            'android_priority' => 1,
                            'data' => array('custom' => 'json data'),
                        ),
                    )
        ));

function sendpush($method, $data) {
            $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, false);
            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') && self::$push_de) {
                print "[PW] request: $request\n";
                print "[PW] response: $response\n";
                print "[PW] info: " . print_r($info, true);
            }

            return $info;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM