php uinPush消息推送

php uinPush消息推送,第1张

        $api        = new \GTClient($this->url,$this->appKey,$this->appId,$this->masterSecret);
        //设置推送参数
        $push       = new \GTPushRequest();
        $push->setRequestId(md5(time() . mt_rand(1, 9999999)));//请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失
        $message    = new \GTPushMessage();//个推推送
        $channel    = new \GTPushChannel();//厂商推送

        //配置推送条件
        $setting    = new \GTSettings();//settings 推送条件设置
        $str        = new \GTStrategy();//strategy 厂商下发策略选择
        //默认所有通道的策略选择1-4
        //1: 表示该消息在用户在线时推送个推通道,用户离线时推送厂商通道;
        //2: 表示该消息只通过厂商通道策略下发,不考虑用户是否在线;
        //3: 表示该消息只通过个推通道下发,不考虑用户是否在线;
        //4: 表示该消息优先从厂商通道下发,若消息内容在厂商通道代发失败后会从个推通道下发。
        //其中名称可填写: ios、st、hw、xm、vv、mz、op。
        $str->setDefault($str::STRATEGY_GT_FIRST);
        $setting->setStrategy($str);
        $push->setSettings($setting);
        $setting->setTtl(3600000); //消息有效期,走厂商消息需要设置该值


        //ios厂商通道参数设置
        $iosDto = new \GTIos();
        $aps    = new \GTAps();//推送通知消息内容
        $alert  = new \GTAlert();//通知消息
        $alert->setTitle($title);//通知消息标题
        $alert->setBody($content);//通知消息内容
        $aps->setContentAvailable(0);
        $aps->setSound("default");
        $aps->setAlert($alert);
        $iosDto->setAps($aps);
        $iosDto->setType("notify");
        $channel->setIos($iosDto);

        //android厂商通道参数设置
        $androidDto     = new \GTAndroid();
        $ups            = new \GTUps();//推送通知消息内容
        $notification   = new \GTThirdNotification();//通知消息
        $notification->setTitle($title);
        $notification->setBody($content);
        $clickType      = '';
        $notification->setClickType($notification::CLICK_TYPE_STAERAPP);//这里直接默认设置成了打开app
        if($clickType == 'payload' || $clickType == 'payload_custom'){ //自定义消息 打开APP和不打开APP
            $notification->setClickType($clickType);
            $notification->setPayload('');
        }else if($clickType == 'url'){  //打开URL
            $notification->setClickType($clickType);
            $notification->setUrl('');
        }else if($clickType == 'intent'){  //打开特定页面
            $notification->setClickType($clickType);
            $notification->setIntent('');
        }else{
            $notification->setClickType($clickType);
        }
        $ups->setNotification($notification);
        $androidDto->setUps($ups);
        $channel->setAndroid($androidDto);

        //设置厂商推送消息参数
        $push->setPushChannel($channel);

        //个推参数设置
        $notify     = new \GTNotification();//消息设置
        $notify->setTitle($title);//通知标题  长度 ≤ 50
        $notify->setBody($content);//通知内容  长度 ≤ 256
        //1、intent:打开应用内特定页面url:打开网页地址。
        //2、payload:自定义消息内容启动应用。
        //3、payload_custom:自定义消息内容不启动应用。
        //4、startapp:打开应用首页。
        //5、none:纯通知,无后续动作
        $notify->setClickType("startapp");
        $message->setNotification($notify);
        $push->setPushMessage($message);

        //推送消息
        if($cid){
            $push->setCid($cid);
            $result = $api->pushApi()->pushToSingleByCid($push);
        }else{
            $result = $api->pushApi()->pushAll($push);
        }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/990235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存