美文网首页
getui 安卓/ios 群推

getui 安卓/ios 群推

作者: 码农工号9527 | 来源:发表于2019-11-19 16:04 被阅读0次

    1.下载php的sdk后引入一些必要的文件(http://docs.getui.com/download.html

    <?php
    
    header("Content-Type: text/html; charset=utf-8");
    
    require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/IGt.AppMessage.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/IGt.TagMessage.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/IGt.APNPayload.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/template/IGt.BaseTemplate.php');
    require_once(dirname(__FILE__) . '/' . 'IGt.Batch.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/utils/AppConditions.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/template/notify/IGt.Notify.php');
    require_once(dirname(__FILE__) . '/' . 'igetui/IGt.MultiMedia.php');
    require_once(dirname(__FILE__) . '/' . 'payload/VOIPPayload.php');
    require_once ('igetui/template/IGt.RevokeTemplate.php');
    require_once ('igetui/template/IGt.StartActivityTemplate.php');
    
    //http的域名
    define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
    
    //群推接口案例  安卓
    function pushMessageToApp($app_params, $push_display, $push_effect){
        $igt = new IGeTui(HOST,$app_params['appKey'],$app_params['masterSecret']);
        // STEP2:选择通知模板
        $template = IGtNotificationTemplateAndroid($push_display, $push_effect);
    
        $message = new IGtAppMessage();
        $message->set_isOffline(true);
        $message->set_offlineExpireTime(30 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
        $message->set_data($template);
    
        $appIdList      = array($app_params['appid']);
        $message->set_appIdList($appIdList);
    
        // STEP6:执行推送
        $rep = $igt->pushMessageToApp($message,"任务组名");
    
        return $rep;
    }
    
    function IGtNotificationTemplateAndroid($app_params, $push_display, $push_effect){
        $template =  new IGtNotificationTemplate();
        $template->set_appId($app_params['appid']);                   //应用appid
        $template->set_appkey($app_params['appKey']);                 //应用appkey
        $template->set_transmissionType(1);            //透传消息类型
        $template->set_transmissionContent("测试离线");//透传内容
        // STEP3:设置推送标题、推送内容
        $template->set_title($push_display['title']);      //通知栏标题
        $template->set_text($push_display['text']);     //通知栏内容
        $template->set_logo($push_display['logo']);                       //通知栏logo
        $template->set_logoURL($push_display['logo_url']);                    //通知栏logo链接
        // STEP4:设置响铃、震动等推送效果
        $template->set_isRing($push_effect['is_ring']);                   //是否响铃
        $template->set_isVibrate($push_effect['is_vibrate']);                //是否震动
        $template->set_isClearable($push_effect['is_clearable']);              //通知栏是否可清除
    
        return $template;
    }
    
    //群推接口案例  ios
    function pushMessageToMult($app_params, $push_display, $push_effect){
        $igt = new IGeTui(HOST,$app_params['appKey'],$app_params['masterSecret']);
        $template = IGtLinkTemplateMult($push_display, $push_effect);
        //个推信息体
        //基于应用消息体
        $message = new IGtAppMessage();
        $message->set_isOffline(true); 
        // $message->setPushTime(201909021050);//在用户设定的时间点进行推送,格式为年月日时分
        // $message->set_speed(100);定速推送,设置setSpeed为100,则全量送时个推控制下发速度在100条/秒左右。
        $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,2为4G/3G/2G,1为wifi推送,0为不限制推送,在wifi条件下能帮用户充分节省流量
        $message->set_offlineExpireTime(30 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
        $message->set_data($template);
    
        $appIdList=array($app_params['appid']);
        $message->set_appIdList($appIdList);
    
        $rep = $igt->pushMessageToApp($message);
        return $rep;
    }
    
    function IGtLinkTemplateMult($app_params, $push_display, $push_effect){
        $template =  new IGtLinkTemplate();
        $template ->set_appId($app_params['appid']);//应用appid
        $template ->set_appkey($app_params['appKey']);//应用appkey
        // 设置推送标题、推送内容
        $template ->set_title($push_display['title']);//通知栏标题
        $template ->set_text($push_display['text']);//通知栏内容
        $template ->set_logo($push_display['logo']);//通知栏logo
        $template->set_logoURL($push_display['logo_url']);//通知栏logo链接
        // 设置响铃、震动等推送效果
        $template ->set_isRing($push_effect['is_ring']);//是否响铃
        $template ->set_isVibrate($push_effect['is_vibrate']);//是否震动
        $template ->set_isClearable($push_effect['is_clearable']);//通知栏是否可清除
        //$template ->set_url("http://******");//打开连接地址
        //$template->set_notifyStyle(0);
        //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
        // iOS推送需要设置的pushInfo字段
        $apn = new IGtAPNPayload();
    
        $alertmsg=new SimpleAlertMsg();
        $alertmsg->alertMsg=[
            "title" => $push_display['title'],
            "body" => $push_display['text']
        ];
        $apn->alertMsg=$alertmsg;
        $apn->badge=1;
        $apn->sound="";
        // $apn->add_customMsg("payload","透传测试透传测试");
        $apn->contentAvailable=1;
        $apn->category="ACTIONABLE";
        $template->set_apnInfo($apn);
        
        return $template;
    }
    ?>
    

    2.调用 引入上面的代码后调用测试

    /**
    * [$push_display description]
    * 推送显示设置
    * title        通知栏标题
    * text         通知栏内容
    * logo         通知栏logo
    * logo_url     通知栏logo链接
    */
    $push_display = [
        'title'     => '推送标题',
        'text'      => '推送内容',
        'logo'      => '',
        'logo_url'  => '',
    ];
    
    /**
    * [$push_effect description]
    * 推送效果设置
    * is_ring      是否响铃
    * is_vibrate   是否震动
    * is_clearable 通知栏是否可清除
     */
    $push_effect = [
         'is_ring'       => true,
         'is_vibrate'    => true,
         'is_clearable'  => true,
    ];
    
    /**
    * [$getui_params description]
    * 密钥配置
    * appKey     
    * appid   
    * masterSecret
     */
    $result_android = pushMessageToApp($getui_params, $push_display, $push_effect);
    $result_ios = pushMessageToMult($getui_params, $push_display, $push_effect);
    var_dump([
        'android' => $result_android,
        'ios' => $result_ios 
    ]);
    

    相关文章

      网友评论

          本文标题:getui 安卓/ios 群推

          本文链接:https://www.haomeiwen.com/subject/fhtgictx.html