APP端消息推送

PHP 收藏 0 164
FREE VIP 2019-09-18 11:25:38

1.此方法使用第三方服务,注册登录

官网:http://www.getui.com

文档地址:http://docs.getui.com/getui/server/php/start/

2.下载安装包到手机测试

undefined


3.composer 下载扩展包

composer require getuilaboratory/getui-pushapi-php-client:dev-master

目录结构

undefined


4.封装类方法

此方法为群推,不需要client_id

undefined

调用

undefined


//组推

undefined


调用

undefined

个推

undefined

很简单啦

undefined


另外消息模板有不同的类型,详细信息可查看文档

实际项目应用需要去开发者中心创建应用

undefined


require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
class GeTui{
private $host = 'http://sdk.open.api.igexin.com/apiex.htm';
//个推配置
private $appkey = 'ZtjG3bO8Lc9e4UbRzX0Yy3';
private $appid = 'x4O4U0RnuxAIwNVeSvXM19';
private $mastersecret = 'W30SCWISC69aXICEbx9d04';
//private $client_id = '22f7b1531502c3251d57e75ec82e38ad';

//个推
public function pushMessageToSingle($client_id,$title,$msg,$msg_content=''){
$igt = new IGeTui($this->host,$this->appkey,$this->mastersecret);
//消息模版:
$template = new IGtNotificationTemplate();
$template->set_appId($this->appid); //应用appid
$template->set_appkey($this->appkey); //应用appkey
$template->set_transmissionType(1); //透传消息类型
$template->set_transmissionContent($msg_content);//透传内容
$template->set_title($title); //通知栏标题
$template->set_text($msg); //通知栏内容
$template->set_isRing(true); //是否响铃
$template->set_isVibrate(true); //是否震动
$template->set_isClearable(true); //通知栏是否可清除
//定义"SingleMessage"
$message = new IGtSingleMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600*12*1000);//离线时间
$message->set_data($template);//设置推送消息类型
//$message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,2为4G/3G/2G,1为wifi推送,0为不限制推送
//接收方
$target = new IGtTarget();
$target->set_appId($this->appid);
$target->set_clientId($client_id);
try {
$rep = $igt->pushMessageToSingle($message, $target);
return $rep;

}catch(RequestException $e){
$requstId =$e.getRequestId();
//失败时重发
$rep = $igt->pushMessageToSingle($message, $target,$requstId);
return $rep;
}
}
//组推
//$client_ids array
public function pushMessageToList($client_ids,$title,$msg,$msg_content=''){
putenv("gexin_pushList_needDetails=true");
$igt = new IGeTui($this->host,$this->appkey,$this->mastersecret);
//消息模版:
$template = new IGtNotificationTemplate();
$template->set_appId($this->appid); //应用appid
$template->set_appkey($this->appkey); //应用appkey
$template->set_transmissionType(1); //透传消息类型
$template->set_transmissionContent($msg_content);//透传内容
$template->set_title($title); //通知栏标题
$template->set_text($msg); //通知栏内容
$template->set_isRing(true); //是否响铃
$template->set_isVibrate(true); //是否震动
$template->set_isClearable(true); //通知栏是否可清除
//定义"ListMessage"信息体
$message = new IGtListMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600*12*1000);//离线时间
$message->set_data($template);//设置推送消息类型
$message->set_PushNetWorkType(1);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
$contentId = $igt->getContentId($message);
$targetList = [];
for($i = 0;$i<count($client_ids);$i++){
$target = new IGtTarget();
$target->set_appId($this->appid);
$target->set_clientId($client_ids[$i]);
$targetList[$i] = $target;
}
$rep = $igt->pushMessageToList($contentId, $targetList);
return $rep;
}
//群推
public function pushMessageToApp($title,$msg,$msgContent=''){
$igt = new IGeTui($this->host,$this->appkey,$this->mastersecret);
//定义透传模板,设置透传内容,和收到消息是否立即启动启用
$template = new IGtNotificationTemplate();
$template->set_appId($this->appid); //应用appid
$template->set_appkey($this->appkey); //应用appkey
$template->set_transmissionType(1); //透传消息类型
$template->set_transmissionContent($msgContent);//透传内容
$template->set_title($title); //通知栏标题
$template->set_text($msg); //通知栏内容
$template->set_isRing(true); //是否响铃
$template->set_isVibrate(true); //是否震动
$template->set_isClearable(true); //通知栏是否可清除
// 定义"AppMessage"类型消息对象,设置消息内容模板、发送的目标App列表、是否支持离线发送、以及离线消息有效期(单位毫秒)
$message = new IGtAppMessage();
$message->set_isOffline(true);
$message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
$message->set_data($template);
$appIdList=array($this->appid);
$message->set_appIdList($appIdList);
$rep = $igt->pushMessageToApp($message);
return $rep;
}
}

评论
  • 消灭零回复