消息推送接口--极光的使用

极光官方文档-Push API

composer require jpush/jpush
  • index.php文件
<?php

include './vendor/autoload.php';
require './config.php';
use JPush\Client as JPush;

$data = $_POST;

        //定义需要的参数
        $app_key="5cfcdf6659fca3e33dde79cc";
        $master_secret="b6d1612108cbd489e379e25e";

        //点三个参数可以传日志位置
        $client = new JPush($app_key, $master_secret, './jpush.log');
        $push = $client->push();
        //设置推送的平台
        $platform = array('ios', 'android');
        //设置别名
        $alias=array(
            'name'=>'zhangsan',
            'age' => '12',
        );
        //设置信息内容
        $content = '您有新消息了';
        $message = array(
            'title' => '平台标题',
            'content_type' => 'text',
            'msg_content'=>'消息内容',
        );
        //设置推送选项
        $options = array(
            'sendno' => 101,  // 无意义字段--纯粹用来作为 API 调用标识,API 返回时被原样返回,以方便 API 调用方匹配请求与返回。
            'time_to_live' => 86400*7,  //若用户不在线,消息为用户保存多久86400是一天,最长10天
            'apns_production' => True,   //False表示开发环境  True 表示推送生产环境
            'big_push_duration' => 0  //缓慢推送
        );

    //匹配不同的推送
    switch ($data['type']) {
        //1 为广播
        case '1':
              $push->setPlatform($platform)  //推送平台
                ->addAllAudience()   //广播推送到所有人
                ->message($content, $message)
                ->options($options);
            try {   //尝试推送
                $response = $push->send();
                print_r($response);
                if ($response['http_code'] == 200){
                    echo json_encode( array('msg'=>'推送成功-11'));
                }else{
                    echo json_encode( array('msg'=>'推送失败'));
                }
            } catch (\JPush\Exceptions\JPushException $e) {
                print $e;
            }
            break;
        //2 为个人
        case '2':
            //当用户未登陆时,无法为个人推送消息,这时会发生异常,捕获异常并处理
            try{
                $push->setPlatform($platform)
                    ->addAlias($alias)   //要推送的用户,可以是数组 。一个设备只能绑定一个别名,但多个设备可以绑定同一个别名。一次推送最多 1000 个。
                    ->message($content, $message)
                    ->options($options);

                try {   //尝试推送
                    $response = $push->send();
                    print_r($response);
                    if ($response['http_code'] == 200){
                        echo json_encode( array('msg'=>'推送成功'));
                    }else{
                        echo json_encode( array('msg'=>'推送失败'));
                    }
                } catch (\JPush\Exceptions\JPushException $e) {
                    print $e;
                }

            }catch (\Exception $e) {
                print_r($e);
            }
            break;
        default:
            echo '非法推送';
            break;
    }


注意

使用了别名推送 addAlias($alias)
就不可以使用 addAllAudience() 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,087评论 25 709
  • 推送技术产生场景: --服务器端主动性: 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据...
    原军锋阅读 34,971评论 4 60
  • 版本记录 前言   现在很多APP都有推送功能,其中极光推送就是很多APP的首选。我们最近的几个APP也是用的极光...
    刀客传奇阅读 12,690评论 0 8
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 今天所有的事情好像都完成了,效率前所未有的高,只剩了打卡这一件,正在努力完成中。 第一件,把下周周三月考的试题给弄...
    无言无语1阅读 2,507评论 2 5