**个推开发者文档超详细**
在开发推送时,用到个推,发现官方的dome很不友好,用起来让人很费解,所以花了点时间做整理和超详细的注释,废话不多说,下面直接上代码
<?php
/**
* Created by PhpStorm.
* User: 个推技术团队
* Arrange-Notes: 寻梦(e-mail:feiyudewo@126.com)
* Date: 2019-6-25
* Time: 上午10:56
*/
////设置代理
//putenv("gexin_http_proxy_ip=192.168.44.129");
//putenv("gexin_http_proxy_port=808");
//putenv("gexin_http_proxy_username=user");
//putenv("gexin_http_proxy_passwd=123456");
define('APPKEY', '');
define('APPID', '');
define('MASTERSECRET', '');
define('HOST', '');
//define('CID', '');
//define('DT', '');
//define('CID1', '');
//define('DT1', '');
//define('groupName', '');
//define('PN','');
//define('Badge', '+1');
//define("TASKID", "OSA-0731_RGyUZj0gYEAC51o1EgbTz8");
//define("ALIAS", "ALIAS");
/**
* 为单个用户绑定别名
* @param string $alias 别名 字母(区分大小写)、数字、下划线、汉字
* @param string $cid 用户cid
* @return mixed|null
* @throws Exception
*/
function bindAlias($alias,$cid)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->bindAlias(APPID, $alias, $cid);
return $ret;
}
/**
* 根据别名获取clientid信息
* @param string $alias 用户别名
* @return mixed|null
*/
function queryCidByAlias($alias)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->queryClientId(APPID, $alias);
return $ret;
}
/**
* 通过clientid获取别名信息
* @param string $cid 客户端cid
* @return mixed|null
*/
function queryAliasByCID($cid)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->queryAlias(APPID, $cid);
return $ret;
}
/**
* 单个clientid和别名解绑
* @param string $alias 别名
* @param string $cid 客服端cid
* @return mixed|null
*/
function unbindAlias($alias,$cid)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->unBindAlias(APPID, $alias, $cid);
return $ret;
}
/**
* 绑定别名的所有clientid解绑
* @param string $alias 别名
* @return mixed|null
*/
function unbindAliasAll($alias)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->unBindAliasAll(APPID, $alias);
return $ret;
}
/**
* 大数据综合分析用户得到的标签:即用户画像
* @return mixed|null
*/
function getPersonaTags()
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getPersonaTags(APPID);
return $ret;
}
/**
* 通过标签获取用户总数
* @param array $tagList 标签列表 $tagList = array("English", "龙卷风");
* @return mixed|null
* @throws Exception
*/
function getUserCountByTags($tagList)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getUserCountByTags(APPID, $tagList);
return $ret;
}
/**
* 定时任务查询接口 已提交的定时任务的相关信息。
* @param string $taskid 任务ID
* @return mixed|null
*/
function getScheduleTask($taskid)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getScheduleTask($taskid, APPID);
return $ret;
}
/**
* 定时任务删除接口 距离下发还有一分钟的任务 将无法删除 也即 停止任务下发
* @param string $taskid 任务ID
* @return mixed|null
*/
function delScheduleTask($taskid)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->delScheduleTask($taskid, APPID);
return $ret;
}
/**
* 通过分组名称获取推送结果
* @return mixed|null
*/
function getPushResultByGroupName($groupName = 'toAppPush')
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getPushResultByGroupName(APPID,$groupName);
return $ret;
}
/**
* 获取24小时在线用户数
* @return array $ret
*/
function getLast24HoursOnlineUserStatistics()
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getLast24HoursOnlineUserStatistics(APPID);
return $ret;
}
/**
* 将用户从黑名单移除
* @param array $cidList 需要移除黑名单的cid列表
* @return mixed|null
*/
function restoreCidListFromBlk($cidList)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->restoreCidListFromBlk(APPID, $cidList);
return $ret;
}
/**
* 添加用户到黑名单
* @param array $cidList 需要加入黑名单的cid列表
* @return mixed|null
*/
function addCidListToBlk($cidList)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->addCidListToBlk(APPID, $cidList);
return $ret;
}
/**
* 提示数量徽章设置 根据 clientid 设置 Badge
* @param array $cidList cid列表
* @param string $badeg 用户应用icon上显示的数字 在原有badge上+N;2.在原有badge上-N;3.直接设置badge(数字,会覆盖原有的badge值)
* @return mixed|null
*/
function setBadgeForCID($cidList,$badeg = '+1')
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->setBadgeForCID($badeg,APPID,$cidList);
return $ret;
}
/**
* 根据 deviceToken 设置 Badge
* @param array dtList iOS用户DeviceToken列表
* @param string $badeg 用户应用icon上显示的数字 在原有badge上+N;2.在原有badge上-N;3.直接设置badge(数字,会覆盖原有的badge值)
* @return mixed|null
*/
function setBadgeForDeviceToken($dtList,$badeg = '+1')
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->setBadgeForDeviceToken($badeg, APPID, $dtList);
return $ret;
}
/**
* 把用户手机号和cid绑定关系
* @param array $prams key是cid value是手机号 ['f7e0ef389ac6133c88aedbd66b44a4e1'=>'183836666666'] 一次最多支持50个
* @return mixed|null|array
*/
function bindCidPn($prams=[])
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
foreach ($prams as &$val){
$val = md5($val);
}
$ret = $igt->bindCidPn(APPID, $prams);
return $ret;
}
/**
* cid与pn解绑接口
* @param array $cids cid列表
* @return array
*/
function unbindCidPn($cids)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->unbindCidPn(APPID, $cids);
return $ret;
}
/**
* cid与pn解绑接口
* @param array $cidList cid列表
* @return mixed|null
*/
function queryCidPn($cidList)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->queryCidPn(APPID, $cidList);
return $ret;
}
/**
* 停止发送短信
* @param string $taskId 任务id
* @return mixed|null
*/
function stopSendSms($taskId = '')
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->stopSendSms(APPID, $taskId);
return $ret;
}
/**
* 获取推送结果
* @param string $taskId 任务id
* @return mixed|string “{“taskId”:”OSA-0820_uQ7gevLuGS7Odz8FS2ZSB9”,”result”:”ok”,”msgTotal”:59,”msgProcess”:0}”
*/
function getPushMessageResult($taskId='')
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getPushResult($taskId);
return $ret;
}
/**
* 获取某个应用单日的用户数据(用户数据包括:新增用户数,累计注册用户总数,在线峰值,日联网用户数)(目前只支持查询1天前的数据)
* @param string $date 日期 "20140807"
* @return mixed|null
* @throws Exception
*/
function queryAppUserDataByDate($date){
// putenv("gexin_default_domainurl=http://183.129.161.174:8006/apiex.htm"); //设置系统变量
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->queryAppUserDataByDate(APPID,$date);
return $ret;
}
/**
* 获取某个应用单日的推送数据(推送数据包括:发送总数,在线发送数,接收数,展示数,点击数)(目前只支持查询1天前的数据)
* @param string $date 日期 "20140807"
* @return mixed|null
* @throws Exception
*/
function queryAppPushDataByDate($date){
// putenv("gexin_default_domainurl=http://183.129.161.174:8006/apiex.htm"); //设置系统变量
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->queryAppPushDataByDate(APPID, "20180724");
return $ret;
}
/**
* 获取用户状态查询
* @param $cid
* @return mixed|null
*/
function getUserStatus($cid)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$ret = $igt->getClientIdStatus(APPID,$cid);
return $ret;
}
/**
* 推送任务停止
* @param string $taskId 任务id
* @return bool
*/
function stoptask($taskId)
{
$igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
$rep = $igt->stop($taskId);
return $rep;
}
/**
* 通过服务端设置ClientId的标签
* @param string $cid ClientId
* @param array