11# JPush API PHP Library doc
22
3+
34JPush API PHP Library 提供简化构建JPush Push JSON的API,开发者只需要完成一下几个操作就能完成一次推送。
45
56 1 . 指定推送的平台(platform)
@@ -11,6 +12,28 @@ JPush API PHP Library 提供简化构建JPush Push JSON的API,开发者只需
1112
1213## 版本更新
1314
15+ ### v3.2.0
16+ * 支持设置IOS Notification的category属性
17+ * 设置APNs payload中的"category"字段值(仅支持IOS8)
18+ * 支持设置big_push_duration属性
19+ * 指定时长。规定应在这个时间内推送完成,用于“定速推送”
20+ * 新增Report接口
21+ * API /v3/messages 获取消息统计详细数据
22+ * API /v3/users 获取用户统计详细数据
23+ * 新增Validate接口
24+ * 调用Validate可以模拟真实推送,获取msgId,查询影响人群以及其他统计信息,但JPush服务器不会将消息推送给目标用户
25+ * 新增Device API
26+ * getDeviceTagAlias 获取指定RegistrationId的所有属性,包含tags, alias
27+ * removeDeviceTag 移除指定RegistrationId的所有tag
28+ * removeDeviceAlias 移除指定RegistrationId的所有alias
29+ * updateDeviceTagAlias 更新指定RegistrationId的指定属性,当前支持tags, alias
30+ * getTags 获取当前应用的所有标签列表
31+ * isDeviceInTag 查询某个用户是否在tag下
32+ * updateTagDevices 对指定tag添加或者删除registrationId
33+ * deleteUpdate 删除指定Tag,以及与其关联的用户之间的关联关系
34+ * getAliasDevices 获取指定alias下的用户,最多输出10个
35+ * deleteAlias 删除指定alias,以及该alias与用户的绑定关系
36+
1437### v3.1.2
1538
1639* examples中加入** vendor.tar.gz** ,现在开发者直接解压此文件到项目目录,引入 ** vendor/autoload.php** 既可以使用** JPush** 。
@@ -258,7 +281,7 @@ $payload->setAudience(M\all);
258281
259282构建ios对象
260283
261- ` function: JPush/Model/android($alert, $title=null, $builder_id=null, $extras=null) `
284+ ` function: JPush/Model/android($alert, $title=null, $builder_id=null, $extras=null, $category=null ) `
262285
263286构建android对象
264287
@@ -275,7 +298,7 @@ $payload->setNotification(notification('Hi,JPush'));
275298对象不同平台的通知,需要注意以下几点:
276299
277300 1 . 设置ios消息时,默认sound='',如果不需要sound,请指定sound为M\disableSound.
278- 2 . 设置ios消息时,默认badge=1,如果步需要badge ,请指定badge为M\disableBadge.
301+ 2 . 设置ios消息时,默认badge=1,如果不需要badge ,请指定badge为M\disableBadge.
279302
280303``` php
281304$payload->setNotification(M\notification('Hi, JPush',
@@ -293,12 +316,23 @@ Example:
293316$payload->setMessage(M\message('msg content', null, null, array('key'=>'value')));
294317```
295318### Options Selectors
296- ` function: options($sendno=null, $time_to_live=null, $override_msg_id=null, $apns_production=null) `
319+
320+ ` function: options($sendno=null, $time_to_live=null, $override_msg_id=null, $apns_production=null, $big_push_duration=null) `
297321
298322构建options对象
323+
324+ | PARAMS| DESCRIPTION| REQUIRE|
325+ | ----| ----| ----|
326+ | sendno| -| false|
327+ | time_to_live| 离线消息保留时长(秒)。如果不填默认 1 天。不能小于 0| false|
328+ | override_msg_id| 要覆盖的消息ID。必须大于 0| false|
329+ | apns_production| APNs 是否生产环境推送。默认为 True| false|
330+ | big_push_duration| 大推送指定时长。规定应在这个时间内推送完成,用于“定速推送,单位:分钟| false|
331+
332+
299333Example:
300334``` php
301- $payload->setOptions(M\options(123456, null, null, false))
335+ $payload->setOptions(M\options(123456, null, null, false, 60 ))
302336```
303337
304338### Vaildate
@@ -309,7 +343,7 @@ $payload->setOptions(M\options(123456, null, null, false))
309343| isGlobalExceedLength | 检测当前payload是否超出长度限定。返回true/false。(ios notification不超过220并且所有平台的notification + message不超过1200) |
310344
311345
312- ## Report
346+ ## Report API
313347` function: JPush\JPushClient::report($msg_ids) `
314348
315349获取统计信息,msg_ids为推送API返回的 msg_id 列表,多个 msg_id 用逗号隔开,最多支持100个msg_id。具体细节可参考 [ Report API] [ 2 ]
@@ -350,6 +384,71 @@ try {
350384 echo 'message' . $e->getMessage() . $br;
351385}
352386```
387+ ` function: JPush\JPushClient::messages($msg_ids) `
388+ 获取指定msg_ids的详细统计报告,msg_ids为推送API返回的 msg_id 列表,多个 msg_id 用逗号隔开,最多支持100个msg_id。具体细节可参考 [ Report API] [ 2 ]
389+
390+ ` function: JPush\JPushClient::users($time_unit, $start, $duration) `
391+
392+ 获取当前应用指定时间段内的用户统计数据
393+
394+ * time_unit 时间单位,有 3 个可选:HOUR, DAY, MONTH (这三个字串有效,兼容大小写)
395+ * start 起始时间。根据 time_unit 不同,有效值是不同的。取一般的年月日时字符串形式,比如 "2014-06-06 12",即年月日用 "-" 隔开,时用空格隔开。
396+ * duration 基于起始时间的步长。即从起始时间开始持续多久。只支持查询60天以内的用户信息。
397+
398+
399+ ## Device API
400+ ` function: JPush\JPushClient::getDeviceTagAlias($registrationId) `
401+
402+ 获取指定RegistrationId的所有属性,包含tags, alias
403+
404+ ` function: JPush\JPushClient::removeDeviceTag($registrationId) `
405+
406+ 移除指定RegistrationId的所有tag
407+
408+ ` function: JPush\JPushClient::removeDeviceAlias($registrationId) `
409+
410+ 移除指定RegistrationId的所有alias
411+
412+ ` function: JPush\JPushClient::updateDeviceTagAlias($registrationId, $alias = null, $addTags = null, $removeTags = null) `
413+
414+ 更新指定RegistrationId的指定属性,当前支持tags, alias
415+
416+ ` function: JPush\JPushClient::getTags() `
417+
418+ 获取当前应用的所有标签列表
419+
420+ ` function: JPush\JPushClient::isDeviceInTag($registrationId, $tag) `
421+
422+ 查询某个用户是否在tag下
423+
424+ ` function: JPush\JPushClient::updateTagDevices($tag, $addDevices = null, $removeDevices = null) `
425+ 对指定tag添加或者删除registrationId
426+
427+ ` function: JPush\JPushClient::deleteUpdate($tag) `
428+
429+ 删除指定Tag,以及与其关联的用户之间的关联关系
430+
431+ ` function: JPush\JPushClient::getAliasDevices($alias, $platform = null) `
432+
433+ 获取指定alias下的用户,最多输出10个
434+
435+ ` function: JPush\JPushClient::deleteAlias($alias) `
436+
437+ 删除指定alias,以及该alias与用户的绑定关系
438+
439+
440+ ## Validate API
441+ 与Push API调用方法一致,但最终不执行推送操作
442+ Example:
443+ ```
444+ $result = $client->push()
445+ ->setPlatform(M\all)
446+ ->setAudience(M\all)
447+ ->setNotification(M\notification('Hi, JPush'))
448+ ->setAudience(M\audience(array('no one')))
449+ ->printJSON()
450+ ->validate();
451+ ```
353452
354453
355454 [ 1 ] : http://docs.jpush.cn/display/dev/Push-API-v3#Push-API-v3-%E6%8E%A8%E9%80%81%E5%AF%B9%E8%B1%A1
0 commit comments