友盟推送 php,PHP 友盟消息推送类

这篇文章主要介绍了关于PHP 友盟消息推送类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下<?php

/**

* 友盟消息 安卓 IOS 推送类

*

*/

class AlliesClass

{

protected $host; //发送地址

protected $app_key; //appkey

protected $appMasterSecret; //app secret

protected $description; //app secret

//

public function __construct($options = null)

{

if (is_array($options)){

$this->host = 'https://msgapi.umeng.com/api/send';

$this->app_key = $options['app_key'];

$this->appMasterSecret = $options['appMasterSecret'];

$this->description = "友盟接口推送";

}else{

return false;

}

}

/**

* @param $info

* @param $device_token

* @return mixed|string

* 用户单播 和 列播

*/

public function Android_Device_Push($info, $device_token)

{

$data['appkey'] = $this->app_key;

$data['timestamp'] = time(); //时间戳

if(is_array($device_token)){

//批量用户列播

$data['type'] = 'listcast';

$data['device_tokens'] = implode(',',$device_token); //数组转字符串

}else{

//一个用户单播

$data['type'] = 'unicast';

$data['device_tokens'] = $device_token;

}

//payload内容

$data['payload']['display_type'] = 'notification'; //通知消息

//payload body内容

$data['payload']['body']['after_open'] = "go_custom"; //后续操作打开app

$data['payload']['body']['ticker'] = $info['ticker'];

$data['payload']['body']['title'] = $info['title'];

$data['payload']['body']['text'] = $info['title']; //广播通知不能为空补填

//这里可以写附加字段

$data['payload']['extra']['type'] = $info['type']; //附加字段类型

$data['production_mode'] = $info['production_mode'];

$data['description'] = $this->description;

return $this->send($data, $this->host, $this->appMasterSecret);

}

/**

* @param $info

* @return mixed|string

* 广播

*/

public function Android_Broadcast($info)

{

$data['appkey'] = $this->app_key;

$data['timestamp'] = time(); //时间戳

//广播消息

$data['type'] = 'broadcast';

//payload内容

$data['payload']['display_type'] = 'notification'; //通知消息

//payload body内容

$data['payload']['body']['after_open'] = "go_custom"; //后续操作打开app

$data['payload']['body']['ticker'] = $info['ticker'];

$data['payload']['body']['title'] = $info['title'];

$data['payload']['body']['text'] = $info['title']; //广播通知不能为空补填

$data['payload']['extra']['type'] = $info['type']; //附加字段类型1 跳转消息详情

$data['payload']['extra']['prod_id'] = $info['prod_id']; //附加字段消息详情id

$data['payload']['extra']['text'] = $info['text']; //

$data['production_mode'] = $info['production_mode'];

$data['description'] = $this->description;

return $this->send($data, $this->host, $this->appMasterSecret);

}

/**

* @param $info

* @param $device_token

* @return mixed|string

* 单播 和 列播

*/

public function Ios_Device_Push($info, $device_token)

{

$data = array();

$data['appkey'] = $this->app_key;

$data['timestamp'] = time(); //时间戳

if(is_array($device_token)){

//批量用户列播

$data['type'] = 'listcast';

$data['device_tokens'] = implode(',',$device_token); //数组转字符串

}else{

//一个用户单播

$data['type'] = 'unicast';

$data['device_tokens'] = $device_token;

}

//payload内容

$data['payload']['aps']['alert'] = $info['text']; //消息主体

$data['payload']['aps']['sound'] = 'default'; //声音

$data['payload']['type'] = $info['type']; //消息类型 0打开消息详情

$data['payload']['prod_id'] = $info['prod_id']; //消息id

$data['payload']['title'] = $info['title'];

$data['payload']['text'] = $info['text']; //

$data['production_mode'] = $info['production_mode'];

$data['description'] = $this->description;

return $this->send($data, $this->host, $this->appMasterSecret);

}

public function Ios_Broadcast($info)

{

$data = array();

$data['appkey'] = $this->app_key;

$data['timestamp'] = time(); //时间戳

//广播消息

$data['type'] = 'broadcast';

//payload内容

$data['payload']['aps']['alert'] = $info['title']; //消息主体

$data['payload']['aps']['sound'] = 'chime'; //声音

$data['payload']['aps']['badge'] = 1; //显示角标

$data['payload']['type'] = $info['type']; //消息类型 0打开消息详情

$data['payload']['prod_id'] = $info['prod_id']; //消息id

$data['payload']['title'] = $info['title'];

$data['payload']['text'] = $info['ticker']; //

$data['production_mode'] = $info['production_mode'];

$data['description'] = $this->description;

return $this->send($data, $this->host, $this->appMasterSecret);

}

/**

* @param $data

* @param $url_s

* @param $appMasterSecret

* @return mixed|string

* curl 请求

*/

private function send($data, $url_s, $appMasterSecret)

{

$postBody = json_encode($data);

//加密

$sign = md5("POST" . $url_s . $postBody . $appMasterSecret);

$url = $url_s . "?sign=" . $sign;

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

curl_setopt($ch, CURLOPT_TIMEOUT, 5);

curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody );

$result = curl_exec($ch);

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

$curlErrNo = curl_errno($ch);

$curlErr = curl_error($ch);

curl_close($ch);

// print_r($result);

// exit;

if ($httpCode == "0") {

// Time out

return ("Curl error number:" . $curlErrNo . " , Curl error details:" . $curlErr . "\r\n");

} else if ($httpCode != "200") {

return ("Http code:" . $httpCode . " details:" . $result . "\r\n");

} else {

return $result;

}

}

}

?><?php

//使用类

$options['app_key'] = ''; //友盟key;

$options['appMasterSecret'] = ''; //友盟MasterSecret

$this->umeng = new AlliesClass($options);

$info['ticker'] = '';

$info['title'] ='';

$info['title'] =''; //广播通知不能为空补填

$info['type'] = 4; //附加字段类型1 跳转消息详情

$info['text'] = '提醒'; //

$info['production_mode'] = 'false';

$value=$this->umeng->Android_Device_Push($info, $token); //单播传入数据和用户token

$value=$this->umeng->Android_Broadcast($info); //广播直接传入数据

?>

以上就是本篇文章的全部内容了,感谢大家阅读。更多请关注PHP中文网!

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值