【问题标题】:Sending Push notification through pushwoosh from php从 php 通过 pushwoosh 发送推送通知
【发布时间】:2014-04-14 09:29:56
【问题描述】:

我正在尝试通过 push woosh 发送推送通知,如下所示:

有人帮我如何通过此代码在设备上发送推送通知

function pwCall( 'createMessage', 数组(

        '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' ),   
            )
    );

我收到诸如

之类的错误

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

【问题讨论】:

    标签: php iphone push-notification oauth-2.0 pushwoosh


    【解决方案1】:
    1. notifications 应该是 JSON 表示法的对象数组。在 PHP 中,它将是数组数组。这是因为您可以在一个请求中创建多个通知。 通知字段的最终 JSON:

      "通知":[{ ... 通知属性... }, { ... 第二个通知属性... }, ...]

    2. 请求中只有 3 个根参数:application(OR applications_group)、authnotifications .其他参数是通知参数,不是请求参数。

    最后你的 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" )
        )
      )
    ));
    

    除了 send_datecontent 之外的所有通知字段都是可选的,可以省略

    【讨论】:

      【解决方案2】:

      从外观上看,您的日期格式不正确。您正在传递一个由单词“now”组成的普通字符串。您需要做的事情类似于以下内容:

      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"),   
          )
      );
      

      【讨论】:

        【解决方案3】:

        我们开发了一个 API 来轻松调用 Pushwoosh Web 服务。

        这个 API 应该是高质量的,并且经过全面测试(非常高的代码覆盖率)。

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

        【讨论】:

          【解决方案4】:
          $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;
              }
          }
          

          【讨论】:

            猜你喜欢
            • 2017-04-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-04-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多