个推,推送数据到安卓客户端(php版)

版权声明:本文为博主原创文章,拒绝相同的垃圾博文。 https://blog.csdn.net/tsummerb/article/details/79903581

由于项目开发需要,需要服务端推送数据到安卓客户端,最终选择了第三方的个推数据推送。准备工作个推官网有详细介绍,此处不做详解。基本推算原理:在个推注册绑定客户端后,每一个客户端会有一个唯一的客户端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;
}
?>

猜你喜欢

转载自blog.csdn.net/tsummerb/article/details/79903581