美文网首页
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