個推,推送資料到安卓客戶端(php版)
阿新 • • 發佈:2019-02-14
由於專案開發需要,需要服務端推送資料到安卓客戶端,最終選擇了第三方的個推資料推送。準備工作個推官網有詳細介紹,此處不做詳解。基本推算原理:在個推註冊繫結客戶端後,每一個客戶端會有一個唯一的客戶端id,通過傳送推送內容到客戶端完成訊息推送。以下介紹個推兩個推送型別(單個推送):
<1>點選通知開啟應用
<?php require_once(dirname(__FILE__) . '/' . 'IGt.Push.php'); define('APPKEY','XXX'); define('APPID','XXX'); define('MASTERSECRET','XXX'); define('HOST','https://api.getui.com/apiex.htm'); //單推介面案例 function pushMessageToSingle($cid,$msg){ $igt = new IGeTui(HOST,APPKEY,MASTERSECRET); //點選通知開啟應用模版: $template = IGtNotificationTemplateDemo($msg); //定義"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(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 IGtNotificationTemplateDemo($msg){ $template = new IGtNotificationTemplate(); $template->set_appId(APPID);//應用appid $template->set_appkey(APPKEY);//應用appkey $template->set_transmissionType(1);//透傳訊息型別 $template->set_transmissionContent("");//透傳內容 $template->set_title("您有新的訊息,請注意查收!");//通知欄標題 $template->set_text($msg);//通知欄內容 $template->set_logo("logo.png");//通知欄logo $template->set_isRing(true);//是否響鈴 $template->set_isVibrate(true);//是否震動 $template->set_isClearable(true);//通知欄是否可清除 //$template->set_duration(BEGINTIME,ENDTIME); //設定ANDROID客戶端在此時間區間內展示訊息 return $template; } ?>
<2>點選通知開啟網頁
<?php require_once(dirname(__FILE__) . '/' . 'IGt.Push.php'); define('APPKEY','XXX'); define('APPID','XXX'); define('MASTERSECRET','XXX'); define('HOST','https://api.getui.com/apiex.htm'); define('CID','XXX'); pushMessageToSingle(); //單推介面案例 function pushMessageToSingle(){ $igt = new IGeTui(HOST,APPKEY,MASTERSECRET); //點選通知開啟網頁模版: $template = IGtLinkTemplateDemo(); //定義"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(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 IGtLinkTemplateDemo(){ $template = new IGtLinkTemplate(); $template ->set_appId(APPID);//應用appid $template ->set_appkey(APPKEY);//應用appkey $template ->set_title("您有新的訊息,請注意查收");//通知欄標題 $template ->set_text("老闆在嗎");//通知欄內容 $template ->set_logo("");//通知欄logo $template ->set_isRing(true);//是否響鈴 $template ->set_isVibrate(true);//是否震動 $template ->set_isClearable(true);//通知欄是否可清除 $template ->set_url("www.baidu.com");//開啟連線地址 //$template->set_duration(BEGINTIME,ENDTIME); //設定ANDROID客戶端在此時間區間內展示訊息 return $template; } ?>