| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572 |
- <?php
- error_reporting(0);
- 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');
- define('APPKEY','J518iXmnPu7EFvxQB9jQe2');
- define('APPID','o7v9ee8Cxm5qhdeoWqbVrA');
- define('MASTERSECRET','MqgR0NYOgLAmbQy7vmdOR8');
- define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
- function bindAlias() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $ret =$igt->bindAlias(APPID,ALIAS,CID);
- var_dump($ret);
- }
- function queryCidByAlias() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $ret =$igt->queryClientId(APPID,ALIAS);
- var_dump($ret);
- }
- function queryAliasByCID() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $ret =$igt->queryAlias(APPID,CID);
- var_dump($ret);
- }
- function unbindAlias() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $ret =$igt->unBindAlias(APPID,ALIAS,CID);
- var_dump($ret);
- }
- function unbindAliasAll() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $ret =$igt->unBindAliasAll(APPID,ALIAS);
- var_dump($ret);
- }
- function getPersonaTagsDemo() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $ret = $igt->getPersonaTags(APPID);
- var_dump($ret);
- }
- function getUserCountByTagsDemo() {
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $tagList = array("English","龙卷风");
- $ret = $igt->getUserCountByTags(APPID, $tagList);
- var_dump($ret);
- }
- function getScheduleTaskDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $ret = $igt->getScheduleTask(TASKID,APPID);
- var_dump($ret);
- }
- function delScheduleTaskDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $ret = $igt->delScheduleTask(TASKID,APPID);
- var_dump($ret);
- }
- function getPushResultByGroupNameDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $ret = $igt->getPushResultByGroupName(APPID,"toAppPush");
- var_dump($ret);
- }
- function getLast24HoursOnlineUserStatisticsDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $ret = $igt->getLast24HoursOnlineUserStatistics(APPID);
- var_dump($ret);
- }
- function restoreCidListFromBlkDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $cidList=array(CID,"");
- $ret = $igt->restoreCidListFromBlk(APPID,$cidList);
- var_dump($ret);
- }
- function addCidListToBlkDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $cidList=array(CID,"");
- $ret = $igt->addCidListToBlk(APPID,$cidList);
- var_dump($ret);
- }
- function setBadgeForCIDDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $cidList=array(CID,CID1);
- $ret = $igt->setBadgeForCID(Badge,APPID,$cidList);
- var_dump($ret);
- }
- function setBadgeForDeviceTokenDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $cidList=array(DT,DT1);
- $ret = $igt->setBadgeForDeviceToken(Badge,APPID,$cidList);
- var_dump($ret);
- }
- //bindCidPnDemo();
- function bindCidPnDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $params = array();
- $params[CID] = md5(PN);
- $ret = $igt->bindCidPn(APPID,$params);
- var_dump($ret);
- }
- //unbindCidPnDemo();
- function unbindCidPnDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $cids=array(CID,"");
- $ret = $igt->unbindCidPn(APPID,$cids);
- var_dump($ret);
- }
- function queryCidPnDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $cidList=array(CID);
- $ret = $igt->queryCidPn(APPID,$cidList);
- var_dump($ret);
- }
- function stopSendSmsDemo(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $ret = $igt->stopSendSms(APPID,"OSS-0801_4b427ea3eea4801064ac7f76b86da6ab");
- var_dump($ret);
- }
- function getPushMessageResultDemo(){
- // putenv("gexin_default_domainurl=http://183.129.161.174:8006/apiex.htm");
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- // $ret = $igt->getPushResult("OSA-0522_QZ7nHpBlxF6vrxGaLb1FA3");
- // var_dump($ret);
- // $ret = $igt->queryAppUserDataByDate(APPID,"20140807");
- // var_dump($ret);
- $ret = $igt->queryAppPushDataByDate(APPID,"20180724");
- var_dump($ret);
- }
- //用户状态查询
- function getUserStatus() {
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $rep = $igt->getClientIdStatus(APPID,CID);
- var_dump($rep);
- echo ("<br><br>");
- }
- //推送任务停止
- function stoptask(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $rep = $igt->stop("OSA-0801_F3TKsUx10wAzfyPsq8zKY2");
- var_dump($rep);
- }
- //通过服务端设置ClientId的标签
- function setTag(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $tagList = array('','中文','English');
- $rep = $igt->setClientTag(APPID,CID,$tagList);
- var_dump($rep);
- echo ("<br><br>");
- }
- function getUserTags() {
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $rep = $igt->getUserTags(APPID,CID);
- //$rep.connect();
- var_dump($rep);
- echo ("<br><br>");
- }
- //服务端推送接口,支持三个接口推送
- //1.PushMessageToSingle接口:支持对单个用户进行推送
- //2.PushMessageToList接口:支持对多个用户进行推送,建议为50个用户
- //3.pushMessageToApp接口:对单个应用下的所有用户进行推送,可根据省份,标签,机型过滤推送
- //
- //单推接口案例
- /*
- function pushMessageToSingle(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- //消息模版:
- // 1.TransmissionTemplate:透传功能模板
- // 2.LinkTemplate:通知打开链接功能模板
- // 3.NotificationTemplate:通知透传功能模板
- // 4.NotyPopLoadTemplate:通知弹框下载功能模板
- // $template = IGtNotyPopLoadTemplateDemo();
- // $template = IGtLinkTemplateDemo();
- // $template = IGtNotificationTemplateDemo();
- $template = IGtTransmissionTemplateDemo();
- $template = SmsDemo();
- //个推信息体
- $message = new IGtSingleMessage();
- $message->set_isOffline(true);//是否离线
- $message->set_offlineExpireTime(3600*12*1000);//离线时间
- $message->set_data($template);//设置推送消息类型
- // $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
- //接收方
- $target = new IGtTarget();
- $target->set_appId(APPID);
- $target->set_clientId(CID);
- // $target->set_alias(ALIAS);
- try {
- $rep = $igt->pushMessageToSingle($message, $target);
- var_dump($rep);
- echo ("<br><br>");
- }catch(RequestException $e){
- $requstId =$e->getRequestId();
- $rep = $igt->pushMessageToSingle($message, $target,$requstId);
- var_dump($rep);
- echo ("<br><br>");
- }
- }
- */
- //单推接口案例
- function pushMessageToSingle($body,$title,$uid,$cid=''){
- //define('CID',$cid);
- define("ALIAS",$uid);
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- //$template = IGtTransmissionTemplateDemo($body,$title);
- $msgarr=['type'=>1,'title'=>$title,'msg'=>$body];
- $template=IGtTransmissionTemplateFunction(json_encode($msgarr),$msgarr);
- //$template = SmsDemo();
- //个推信息体
- $message = new IGtSingleMessage();
- $message->set_isOffline(true);//是否离线
- $message->set_offlineExpireTime(3600*12*1000);//离线时间
- $message->set_data($template);//设置推送消息类型
- // $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
- //接收方
- $target = new IGtTarget();
- $target->set_appId(APPID);
- //$target->set_clientId(CID);
- $target->set_alias(ALIAS);
- try {
- $rep = $igt->pushMessageToSingle($message, $target);
- return $rep;
- //echo json_encode($rep);
- }catch(RequestException $e){
- $requstId =$e->getRequestId();
- $rep = $igt->pushMessageToSingle($message, $target,$requstId);
- return $rep;
- //echo json_encode($rep);
- }
- }
- function SmsDemo(){
- $template = new IGtTransmissionTemplate();
- $template->set_appId(APPID);//应用appid
- $template->set_appkey(APPKEY);//应用appkey
- $template->set_transmissionType(1);//透传消息类型
- $template->set_transmissionContent("测试离线ddd");//透传内容
- //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
- $smsMessage = new SmsMessage();
- $smsContent = array();
- $smsContent["code1"] = "1234";
- $smsContent["time"] = "5";
- $smsMessage->setSmsContent($smsContent);
- $smsMessage->setSmsTemplateId("1a0ad952756f4c679ca67f008bf37b5e");
- $smsMessage->setOfflineSendtime(1000);
- $template->setSmsInfo($smsMessage);
- return $template;
- }
- function pushMessageToSingleBatch()
- {
- putenv("gexin_pushSingleBatch_needAsync=false");
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $batch = new IGtBatch(APPKEY, $igt);
- $batch->setApiUrl(HOST);
- //$igt->connect();
- //消息模版:
- // 1.TransmissionTemplate:透传功能模板
- // 2.LinkTemplate:通知打开链接功能模板
- // 3.NotificationTemplate:通知透传功能模板
- // 4.NotyPopLoadTemplate:通知弹框下载功能模板
- //$template = IGtNotyPopLoadTemplateDemo();
- $templateLink = IGtLinkTemplateDemo();
- $templateNoti = IGtNotificationTemplateDemo();
- //$template = IGtTransmissionTemplateDemo();
- //个推信息体
- $messageLink = new IGtSingleMessage();
- $messageLink->set_isOffline(true);//是否离线
- $messageLink->set_offlineExpireTime(12 * 1000 * 3600);//离线时间
- $messageLink->set_data($templateLink);//设置推送消息类型
- //$messageLink->set_PushNetWorkType(1);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
- $targetLink = new IGtTarget();
- $targetLink->set_appId(APPID);
- $targetLink->set_clientId(CID);
- $batch->add($messageLink, $targetLink);
- //个推信息体
- $messageNoti = new IGtSingleMessage();
- $messageNoti->set_isOffline(true);//是否离线
- $messageNoti->set_offlineExpireTime(12 * 1000 * 3600);//离线时间
- $messageNoti->set_data($templateNoti);//设置推送消息类型
- //$messageNoti->set_PushNetWorkType(1);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
- $targetNoti = new IGtTarget();
- $targetNoti->set_appId(APPID);
- $targetNoti->set_clientId(CID2);
- $batch->add($messageNoti, $targetNoti);
- try {
- $rep = $batch->submit();
- var_dump($rep);
- echo("<br><br>");
- }catch(Exception $e){
- $rep=$batch->retry();
- var_dump($rep);
- echo ("<br><br>");
- }
- }
- //多推接口案例
- function pushMessageToList($title,$body,$userarr)
- {
- putenv("gexin_pushList_needDetails=true");
- putenv("gexin_pushList_needAsync=true");
- $igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
- $msgarr=['type'=>1,'title'=>$title,'msg'=>$body];
- $template = IGtTransmissionTemplateFunction(json_encode($msgarr),$msgarr);
- //个推信息体
- $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);
- //$contentId = $igt->getContentId($message,"toList任务别名功能"); //根据TaskId设置组名,支持下划线,中文,英文,数字
- $arr=json_encode($userarr);
- $userarr=json_decode($arr,true);
- foreach ($userarr as $key=>$items){
- $target1 = new IGtTarget();
- $target1->set_appId(APPID);
- $target1->set_alias(strval($items));
- $targetList[] = $target1;
- }
- $rep = $igt->pushMessageToList($contentId, $targetList);
- return $rep;
- }
- //群推接口案例
- function pushMessageToApp($title,$body,$sendtype=0,$provincearr=[]){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $msgarr=['type'=>1,'title'=>$title,'msg'=>$body];
- $template = IGtTransmissionTemplateFunction(json_encode($msgarr),$msgarr);
- //个推信息体
- //基于应用消息体
- $message = new IGtAppMessage();
- $message->set_isOffline(true);
- $message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
- $message->set_data($template);
- if($sendtype==1){
- //指定区域推送
- $cdt = new AppConditions();
- $cdt->addCondition(AppConditions::REGION, $provincearr);
- // $cdt->addCondition("age", $age);
- $message->set_appIdList([APPID]);
- $message->set_conditions($cdt);
- }else{
- $appIdList=array(APPID);
- $message->set_appIdList($appIdList);
- }
- $rep = $igt->pushMessageToApp($message);
- return $rep;
- }
- //所有推送接口均支持四个消息模板,依次为通知弹框下载模板,通知链接模板,通知透传模板,透传模板
- //注:IOS离线推送需通过APN进行转发,需填写pushInfo字段,目前仅不支持通知弹框下载功能
- function IGtNotyPopLoadTemplateDemo(){
- $template = new IGtNotyPopLoadTemplate();
- $template ->set_appId(APPID);//应用appid
- $template ->set_appkey(APPKEY);//应用appkey
- //通知栏
- $template ->set_notyTitle("个推");//通知栏标题
- $template ->set_notyContent("个推最新版点击下载");//通知栏内容
- $template ->set_notyIcon("");//通知栏logo
- $template ->set_isBelled(true);//是否响铃
- $template ->set_isVibrationed(true);//是否震动
- $template ->set_isCleared(true);//通知栏是否可清除
- //弹框
- $template ->set_popTitle("弹框标题");//弹框标题
- $template ->set_popContent("弹框内容");//弹框内容
- $template ->set_popImage("");//弹框图片
- $template ->set_popButton1("下载");//左键
- $template ->set_popButton2("取消");//右键
- //下载
- $template ->set_loadIcon("");//弹框图片
- $template ->set_loadTitle("地震速报下载");
- $template ->set_loadUrl("http://dizhensubao.igexin.com/dl/com.ceic.apk");
- $template ->set_isAutoInstall(false);
- $template ->set_isActived(true);
- //$template->set_notifyStyle(0);
- //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
- return $template;
- }
- function IGtLinkTemplateDemo(){
- $template = new IGtLinkTemplate();
- $template ->set_appId(APPID);//应用appid
- $template ->set_appkey(APPKEY);//应用appkey
- $template ->set_title("请输入通知标题1");//通知栏标题
- $template ->set_text("请输入通知内容");//通知栏内容
- $template ->set_logo("");//通知栏logo
- $template ->set_isRing(true);//是否响铃
- $template ->set_isVibrate(true);//是否震动
- $template ->set_isClearable(true);//通知栏是否可清除
- $template ->set_url("http://www.igetui.com/");//打开连接地址
- //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
- return $template;
- }
- function IGtNotificationTemplateDemo(){
- $template = new IGtNotificationTemplate();
- $template->set_appId(APPID);//应用appid
- $template->set_appkey(APPKEY);//应用appkey
- $template->set_transmissionType(2);//透传消息类型
- $template->set_transmissionContent("测试离线");//透传内容
- $template->set_title("个推");//通知栏标题
- $template->set_text("个推最新版点击下载");//通知栏内容
- $template->set_logo("http://wwww.igetui.com/logo.png");//通知栏logo
- $template->set_isRing(true);//是否响铃
- $template->set_isVibrate(true);//是否震动
- $template->set_isClearable(true);//通知栏是否可清除
- //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
- return $template;
- }
- function IGtTransmissionTemplateDemo(){
- $template = new IGtTransmissionTemplate();
- $template->set_appId(APPID);//应用appid
- $template->set_appkey(APPKEY);//应用appkey
- $template->set_transmissionType(1);//透传消息类型
- $template->set_transmissionContent("测试离线ddd");//透传内容
- //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
- //APN简单推送
- $apn = new IGtAPNPayload();
- $alertmsg=new SimpleAlertMsg();
- $alertmsg->alertMsg="abcdefg3";
- $apn->alertMsg=$alertmsg;
- $apn->badge=2;
- $apn->sound="";
- $apn->add_customMsg("payload","payload");
- $apn->contentAvailable=1;
- $apn->category="ACTIONABLE";
- $template->set_apnInfo($apn);
- //VOIP推送
- // $voip = new VOIPPayload();
- // $voip->setVoIPPayload("新浪");
- // $template->set_apnInfo($voip);
- //第三方厂商推送透传消息带通知处理
- // $notify = new IGtNotify();
- //// $notify -> set_payload("透传测试内容");
- // $notify -> set_title("透传通知标题");
- // $notify -> set_content("透传通知内容");
- // $notify->set_url("https://www.baidu.com");
- // $notify->set_type(NotifyInfo_Type::_url);
- // $template -> set3rdNotifyInfo($notify);
- //APN高级推送
- $apn = new IGtAPNPayload();
- $alertmsg=new DictionaryAlertMsg();
- $alertmsg->body="body";
- $alertmsg->actionLocKey="ActionLockey";
- $alertmsg->locKey="LocKey";
- $alertmsg->locArgs=array("locargs");
- $alertmsg->launchImage="c";
- // IOS8.2 支持
- $alertmsg->title="Title";
- $alertmsg->titleLocKey="TitleLocKey";
- $alertmsg->titleLocArgs=array("TitleLocArg");
- $apn->alertMsg=$alertmsg;
- $apn->badge=7;
- $apn->sound="";
- $apn->add_customMsg("payload","payload");
- $apn->contentAvailable=1;
- $apn->category="ACTIONABLE";
- //
- //// IOS多媒体消息处理
- $media = new IGtMultiMedia();
- $media -> set_url("http://docs.getui.com/start/img/pushapp_android.png");
- $media -> set_onlywifi(false);
- $media -> set_type(MediaType::pic);
- $medias = array();
- $medias[] = $media;
- $apn->set_multiMedias($medias);
- $template->set_apnInfo($apn);
- return $template;
- }
- //多标签推送接口案例
- function pushMessageByTag(){
- $igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
- $template = IGtLinkTemplateDemo();
- //个推信息体
- //基于应用消息体
- $message = new IGtTagMessage();
- $message->set_isOffline(true);
- $message->set_offlineExpireTime(10 * 60 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
- $message->set_data($template);
- $appIdList=array(APPID);
- $message->set_tag("中文");
- $message->set_appIdList($appIdList);
- $rep = $igt->pushTagMessage($message);
- var_dump($rep);
- echo ("<br><br>");
- }
- function IGtTransmissionTemplateFunction($json,$arr=[]){
- $template = new IGtTransmissionTemplate();
- $template->set_appId(APPID);//应用appid
- $template->set_appkey(APPKEY);//应用appkey
- $template->set_transmissionType(2);//透传消息类型
- $template->set_transmissionContent($json);//透传内容
- //set_pushInfo($actionLocKey, $badge, $message, $sound, $payload, $locKey, $locArgs, $launchImage, $contentAvailable = 0)
- $template->set_pushInfo('ActionLocKey','+1',$arr['msg'],'',$json,'LocKey',array("locargs"),'c',0,$arr['title']);
- return $template;
- }
- ?>
|