- Laravel 5+. (如果使用队列,须 Laravel 5.5 以上)
- cUrl
- 执行命令:
$ composer require cncal/getui
-
如果 Laravel 版本小于5.5:
- 添加
GetuiServiceProvider
至config/app
的providers
:
Cncal\Getui\GetuiServiceProvider::class,
- 添加 Facade 至
config/app
的aliases
:
'Getui' => Cncal\Getui\Facades\Getui::class,
- 添加
-
发布配置文件
config/getui.php
:
$ php artisan vendor:publish --provider="Cncal\Getui\GetuiServiceProvider"
在 config/getui.php
中配置推送信息:
// 个推基础信息,在平台新建应用的时候生成
'basic' => [
'host' => "http://sdk.open.api.igexin.com/apiex.htm",
'app_id' => "",
'app_key' => "",
'master_secret' => "",
],
// 推送消息的基础设置
'push' => [
'is_ring' => true, //是否响铃
'is_vibrate' => true, // 是否振动
'is_clearable' => true, // 是否可清除
'is_offline' => true, // 是否发送离线消息
'offline_expire_time' => 2, // 离线消息过期时间,单位为小时(范围:0- 72),该时间段内 cid 在线过的用户均可收到通知
'network_type' => 0, // 是否根据网络环境推送消息,0为不限制推送,1为wifi推送,2为4G/3G/2G
],
// 队列配置
'queue' => [
'is_used' => false, // 是否使用队列
'connection' => env('QUEUE_DRIVER', 'sync'), // 连接
'queue' => 'default', // 队列
],
- 函数:
<?php
use Getui;
/**
* 推送通知至指定用户
*
* @param $data
*
* @return $rep
*/
Getui::pushMessageToSingle($data);
/**
* 推送通知至指定用户列表
*
* @param $data
*
* @return $rep
*/
Getui::pushMessageToList($data);
/**
* 推送通知至该应用的所有用户
*
* @param $data
*
* @return $rep
*/
Getui::pushMessageToApp($data);
-
入参
$data
$data = [ 'template_type' => 1, 'template_data' => [ 'title' => '', // 通知标题,string(40), 必填 'text' => '', // 通知内容,string(600), 必填 'logo' => '', // 通知图标名称,string(40), 必填 'logo_url' => '', // 通知图标url地址,string(100), 必填 'transmission_type' => 2, // 是否立即启动应用:1 立即启动 2 等待客户端自启动,必填 'transmission_content' => '', // 透传内容,不支持转义字符,string(2048), 必填 ] 'cid' => 'target cid', // 推送通知至指定用户时填写 'cid_list' => ['cid1','cid2',...], // 推送通知至指定用户列表时填写 ];
-
$data = [ 'template_type' => 2, 'template_data' => [ 'title' => '', // 通知标题,string(40), 必填 'text' => '', // 通知内容,string(600), 必填 'url' => '', // 点击通知后打开的网页地址,string(200), 必填 'logo' => '', // 通知图标名称,string(40), 必填 'logo_url' => '', // 通知图标url地址,string(100), 必填 ] 'cid' => 'target cid', // 推送通知至指定用户时填写 'cid_list' => ['cid1','cid2',...], // 推送通知至指定用户列表时填写 ];
-
$data = [ 'template_type' => 3, 'template_data' => [ 'title' => '', // 通知标题,string(40), 必填 'text' => '', // 通知内容,string(600), 必填 'pop_title' => '', // 弹出框标题,string(40), 必填 'pop_content' => '', // 弹出框内容,string(600), 必填 'pop_image' => '', // 弹出框图标,string(200), 必填 'load_icon' => '', // 下载图标: 本地图标[file://], 网络图标[http:// 或 https://],string(40), 必填 'load_title' => '', // 下载标题,string(40), 必填 'load_url' => '', // 下载地址,string(200), 必填 'is_auto_install' => true, // 是否自动安装(默认否),boolean 'is_actived' => false, // 安装完成后是否自动启动应用程序(默认否),boolean ] 'cid' => 'target cid', // 推送通知至指定用户时填写 'cid_list' => ['cid1','cid2',...], // 推送通知至指定用户列表时填写 ];
-
$data = [ 'template_type' => 4, 'template_data' => [ 'transmission_type' => 2, // 是否立即启动应用:1 立即启动 2 等待客户端自启动,必填 'transmission_content' => '', // 透传内容,不支持转义字符,string(2048), 必填 'is_ios' => false, // 是否支持 ios (默认不支持),boolean 'is_content_available' => false, // 推送是否直接带有透传数据(默认否), boolean 'badge' => '', // 应用icon上显示的数字,int 'sound' => '', // 通知铃声文件名,string 'category' => '', // 在客户端通知栏触发特定的action和button显示,string 'custom_msg' => [ 'key1' => 'value1', 'key2' => 'value2', ... ], // 增加自定义的数据 'title' => '', // 通知标题,string 'text' => true, // 通知内容,string ] 'cid' => 'target cid', // 推送通知至指定用户时填写 'cid_list' => ['cid1','cid2',...], // 推送通知至指定用户列表时填写 ];
-
注意事项:
- 配置中所有的变量都可以针对于某一条具体的推送自定义值,须放在
template_data
节点下 - 推送可定时展示,开始时间
start_at
与结束时间end_at
必须同时设置(格式Y-m-d H:i:s
),否则无效 - 透传消息模版中,当
is_content_available = false
时,title
与text
必填
- 配置中所有的变量都可以针对于某一条具体的推送自定义值,须放在
-
示例:
$data = [ 'template_type' => 1, 'template_data' => [ 'title' => 'Laravel Getui', 'text' => 'May you succeed.', 'transmission_type' => 1, 'transmission_content' => 'It is transmission content', 'is_ring' => false, 'is_clearable' => false, 'begin_at' => date('Y-m-d H:i:s'), 'end_at' => date('Y-m-d H:i:s', strtotime("+1 day")), ], 'cid' => 'target cid', ];
-
-
返回值
$rep
-
版本更新说明:
- v0.1.2:
- Enhancement:点击通知打开应用模板和点击通知打开网页模板支持设置通知图标名称和通知图标 url 地址
- v0.1.1:
- Enhancement:IOS 透传消息模板中支持 category(在客户端通知栏触发特定的action和button显示)
- v0.1.0:
- 新功能:支持队列
- 针对 Laravel5.5LTS 新功能 Package Discovery 更新
composer.json
- 规范 coding style
- v0.0.3:修复 ios 透传消息无法增加自定义数据的 bug
- v0.0.2:向指定的用户列表推送消息
- v0.0.1:支持个推服务器端 PHP SDK 4.0.1.5
- v0.1.2: