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
]);
网友评论