thinkphp 写APP接口集成极光推送的例子

最近用Thinkphp写了个App接口用到第三方推送功能,本文用的第三方推送工具是极光推送,其他的推送不一一介绍。
第一步:下载PHPSDK 并到官网上注册应用将app_key 、master_secret 放到文件中
下载地址:https://www.jpush.cn/common/downloads/resource/1460966988359
第二步:将解压后的文件 src->JPush中的文件及文件夹复制到ORG->Push中(文件夹需要自己创建)或者放到vender中
第三步:在公共控制器CommonAction中创建push方法
private $app_key=****;
private $master_secret=****;
public function push()

        import("ORG.Push.Push");
        $client = new JPush($this->app_key,$this->master_secret);
        $result = $client->push()
        ->setPlatform('all')
        ->addAllAudience()
        ->setNotificationAlert("这是测试的推送")
        ->send();
      //echo 'Result=' . json_encode($result) . $br;

这样就可以完成基本的推送
其他功能本项目没有涉及到就没有书写了解更多:
https://github.com/jpush/jpush-api-php-client/blob/master/doc/api.md#device-api
======华丽的分格线======
另一种方式:
<?php
//jpush.php  这是推送方法  用到curl发送请求
class jpush {
private $_masterSecret = '';
private $_appkeys = '';

/**
* 构造函数
* @param string $username
* @param string $password
* @param string $appkeys
*/
function __construct($masterSecret = '',$appkeys = '') {
    $this->_masterSecret = $masterSecret;
    $this->_appkeys = $appkeys;
}
/**
* 模拟post进行url请求
* @param string $url
* @param string $param
*/
function request_post($url = '', $param = '') {
    if (empty($url) || empty($param)) {
        return false;
    }

    $postUrl = $url;
    $curlPost = $param;
    $ch = curl_init();//初始化curl
    curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
    curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
    $data = curl_exec($ch);//运行curl
    curl_close($ch);

    return $data;
}
/**
* 发送
* @param int $sendno 发送编号。由开发者自己维护,标识一次发送请求
* @param int $receiver_type 接收者类型。1、指定的 IMEI。此时必须指定 appKeys。2、指定的 tag。3、指定的 alias。4、 对指定 appkey 的所有用户推送消息。
* @param string $receiver_value 发送范围值,与 receiver_type相对应。 1、IMEI只支持一个 2、tag 支持多个,使用 "," 间隔。 3、alias 支持多个,使用 "," 间隔。 4、不需要填
* @param int $msg_type 发送消息的类型:1、通知 2、自定义消息
* @param string $msg_content 发送消息的内容。 与 msg_type 相对应的值
* @param string $platform 目标用户终端手机的平台类型,如: android, ios 多个请使用逗号分隔
*/
function send($sendno = 0,$receiver_type = 1, $receiver_value = '', $msg_type = 1, $msg_content = '', $platform = 'android,ios') {
    $url = 'http://api.jpush.cn:8800/sendmsg/v2/sendmsg';
    $param = '';
    $param .= '&sendno='.$sendno;
    $appkeys = $this->_appkeys;
    $param .= '&app_key='.$appkeys;
    $param .= '&receiver_type='.$receiver_type;
    $param .= '&receiver_value='.$receiver_value;
    $masterSecret = $this->_masterSecret;
    $verification_code = md5($sendno.$receiver_type.$receiver_value.$masterSecret);
    $param .= '&verification_code='.$verification_code;
    $param .= '&msg_type='.$msg_type;
    $param .= '&msg_content='.$msg_content;
    $param .= '&platform='.$platform;
    $res = $this->request_post($url, $param);
    if ($res === false) {
        return false;
    }
    $res_arr = json_decode($res, true);
    return $res_arr;
    }

}
?>
调用方式:
<?php
    include('jpush.php');
    $n_title   =  '驿泊';
    $n_content =  '驿泊人生';
    $arr=array('fromer'=>'发送者','fromer_name'=>'发送者名字','fromer_icon'=>'发送者头像','image'=>'发送图片链接','sound'=>'发送音乐链接');//自定义参数
    $appkeys='先上传app应用项目,自动生成的key';
    $masterSecret='appkey下边就同样生成mastersecret的秘钥';
    $sendno = 4;
    $receiver_value = '';
    $platform = 'Android,iOS' ;
    $msg_content = json_encode(array('n_builder_id'=>0, 'n_title'=>$n_title, 'n_content'=>$n_content,'n_extras'=>$arr));       
    $obj = new jpush($masterSecret,$appkeys);
    $res = $obj->send($sendno, 4, $receiver_value, 1, $msg_content, $platform);
    print_r($res);
    exit();
?>

时间: 2024-11-03 10:13:05

thinkphp 写APP接口集成极光推送的例子的相关文章

android-Android集成极光推送后 如何保存富媒体推送的消息

问题描述 Android集成极光推送后 如何保存富媒体推送的消息 Android集成极光推送后,如何保存富媒体推送的消息, Android集成极光推送后 如何保存富媒体推送的消息 解决方案 android集成推送和消息响应极光推送 接收到推送消息后处理方法 解决方案二: http://blog.csdn.net/wwj_748/article/details/41867467

Thinkphp开发--集成极光推送

先说说为啥选用极光推送作为第三方的推送服务. 首先我所了解的推送产品有信鸽.个推.极光,之前用到过个推,感觉还不错,只是代码没有极光简洁,信鸽是腾讯旗下的产品,出于对Tencent的不喜欢,就没有考虑过,其次目前公司之前用过极光,ios和安卓这边对极光比较熟悉,所以就决定用极光推送了. 这里项目后台用的是php搭建的,选用的是thinkphp3.2作为框架,极光选用的版本号为3.4.3,特此说明一下,需要软件包的小伙伴可以在评论留言,不说废话了,下面上代码.一切以自生逻辑为依据,这里只是展示我的

Android极光推送的例子

一.集成SDK(这里推荐自动集成) 1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持.(一般默认支持) buildscript {     repositories {         jcenter()     }     ... }   allprojects {     repositories {         jcenter()     } } 2.在 module 的 gradle 中添加依赖和AndroidManifes

app-关于极光推送官方写的推送服务的问题

问题描述 关于极光推送官方写的推送服务的问题 我想把极光推送官方定义在自己的App中的Xml中注册的那个推送服务名字改掉,但是那个服务是在什么地方调用的啊? 现在我改完推送服务的名字之后就接不到推送了,但是又找不到那个服务到底是在什么地方调用的,有大神知道那个极光推送里面关于的服务是在什么地方调用的么? 也就是说我想知道极光推送是在什么地方调用的那个推送服务的... 解决方案 有大神这么干过么?那个服务是在什么地方调用的啊...

iOS极光推送集成

文章已移到新的博客:http://www.henishuo.com/ios-jpush/ ! 稍稍研究了一下极光推送,其实是非常简单的,不过这个过程也出现了一些问题. 对于应用在前台时,需要额外处理一下. 关于极光推送,由于在iOS8之后,有了新的API,因此极光也给我们提供了适配的API. 下面我就把对极光推送相关API的封装提取出来,希望对大家有帮助,同时也当是总结. 下面是对极光推送而封装的一个工具类: // // HYBJPushHelper.h // JPushDemo // // C

iOS 极光推送 我是按照文档写的

问题描述 iOS 极光推送 我是按照文档写的 2015-05-19 12:23:45.412 HJXiaoProject[441:89570] You've implemented -[ application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBack

智能家居App+时代,美的与极光推送合作共赢

如果你对美的印象还停留在传统的家电制造巨头,那么你就out了,美的早已进入智慧家居时代,美的旗下拥有智慧家居品牌M-Smart,同时,美的集团也在业内第一个提出打造全球最开放的智慧家居应用系统,实现所有家电产品的互联.互通.互懂.目前,阿里.华为已加入美的智能社区开放系统.2018年,美的智慧家居产品销售将占其总销量的50%. 近日,世界500强美的集团与移动应用云服务及大数据平台极光达成战略合作,极光负责为美的集团部署移动推送平台私有云项目.极光推送平台私有云服务是基于极光推送海量用户公有云版

进程-关于极光推送的推送服务被杀死之后就接不到推送的问题

问题描述 关于极光推送的推送服务被杀死之后就接不到推送的问题 想请教一下,怎么样可以让当前App从后台中清掉的时候,集成的极光推送的推送服务不被 清掉?因为推送服务被清掉之后就接收不到推送的信息了.现在是只有在软件在被用户操作的时候才可能接收到推送的消息 解决方案 现在这个问题好纠结啊,App在手机后台中清除之后,就接收不到推送的消息了.要怎么办啊? 解决方案二: 有木有大神知道啊... 解决方案三: 这个要看下你是否在APP里面写程序了~! 解决方案四: 问下极光的客服,另外一般用户估计是不会

解析iOS10中的极光推送消息的适配_IOS

iOS10发布后,发现项目中的极光推送接收消息异常了. 查了相关资料后才发现,iOS10中对于通知做了不少改变.同时也发现极光也很快更新了对应的SDK. 现在就把适配修改的做法分享一下,希望对有需要的童鞋有所帮助. 具体做法如下: 注意:必须先安装Xcode8.0版本. 一.添加相关的SKD,或framework文件 1.添加UserNotification.framework 2.更新jpush的SDK(最新版本:jpush-ios-2.1.9.a)https://www.jiguang.cn