# Ŀ¼ - [Init API](#init-api) - [Push API](#push-api) - [Report API](#report-api) - [Device API](#device-api) - [Schedule API](#schedule-api) - [Exception Handle](#schedule-api) > **×¢£ºPHP SDK ÖÜȫ֧³Ö namespaces µ«ÎªÀû±ã±í´ï£¬£¬£¬ £¬£¬£¬ÒÔÏÂÀý×Ó¶¼²»Ê¹Óà use Óï¾ä** ## Init API ÔÚŲÓÃÍÆËÍ֮ǰ£¬£¬£¬ £¬£¬£¬ÎÒÃDZØÐèÏȳõʼ»¯ JPushClient£¬£¬£¬ £¬£¬£¬Å²ÓÃÒÔÏ´úÂë¿ÉÒÔ¾ÙÐпìËÙ³õʼ»¯£º ```php $client = new \JPush\Client($app_key, $master_secret); ``` ÔÚ³õʼ»¯ JPushClient µÄʱ¼ä£¬£¬£¬ £¬£¬£¬¿ÉÒÔÖ¸¶¨**ÈÕ־·¾¶**£º ```php $client = new \JPush\Client($app_key, $master_secret, $log_path); ``` > ĬÈÏÈÕ־·¾¶Îª `./jpush.log`,¼´ÉúÑÄÔÚÄ¿½ñÔËÐÐĿ¼£¬£¬£¬ £¬£¬£¬ÈôÊÇÏë¹Ø±ÕÈÕÖ¾£¬£¬£¬ £¬£¬£¬¿ÉÒÔÖ¸¶¨Îª `null`¡£¡£¡£¡£ ## Push API ÔÚ³õʼ»¯ JPushClient ºó£¬£¬£¬ £¬£¬£¬Å²ÓÃÒÔÏ´úÂ뽫·µ»ØÒ»¸öÍÆËÍ Payload ¹¹½¨Æ÷£¬£¬£¬ £¬£¬£¬ËüÌṩ¸»ºñµÄAPIÀ´×ÊÖúÄã¹¹½¨ PushPayload¡£¡£¡£¡£ ```php $push = $client->push(); ``` ͨ¹ý [JPush Push API](https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/) ÎÒÃÇÖªµÀ£¬£¬£¬ £¬£¬£¬Ò»¸ö PushPayload ÊÇÓÉÒÔϼ¸¸ö²¿·Ö×é³ÉµÄ£º - Cid - Platform - Audience - Notification - Message - SmsContent - Options #### Cid ```php $push->setCid($cid); ``` #### Platform ```php $push->setPlatform('all'); // OR $push->setPlatform('ios', 'android'); // OR $push->setPlatform(['ios', 'android']); ``` #### Audience ```php $push->addAllAudience(); ``` ```php $push->addTag('tag1'); // OR $push->addTag(['tag1', 'tag2']); ``` ÆäËûÖîÈç `addAlias()`, `addRegistrationId()`, `addTagAnd()`, `addTagNot()`, `addSegmentId()`, `addAbtest()` µÄʹÓÃÒªÁìÓë `addTag()` ÀàËÆ£¬£¬£¬ £¬£¬£¬Ôڴ˲»×ö׸Êö¡£¡£¡£¡£ #### Notification ```php // ¼òÆÓµØ¸øËùÓÐÆ½Ì¨ÍÆËÍÏàͬµÄ alert ÐÂÎÅ $push->setNotificationAlert('alert'); ``` **iOS Notification** ```php // iosNotification($alert = '', array $notification = array()) // Êý×é $notification µÄ¼üÖ§³Ö 'sound', 'badge', 'content-available', 'mutable-content', category', 'extras' ÖеÄÒ»¸ö»ò¶à¸ö // ŲÓÃʾÀý $push->iosNotification(); // OR $push->iosNotification('hello'); // OR $push->iosNotification('hello', [ 'sound' => 'sound', 'badge' => '+1', 'extras' => [ 'key' => 'value' ] ]); ``` ²ÎÊý˵Ã÷: | ²ÎÊý | ˵Ã÷ | | --- | --- | | alert |ÌåÏÖ֪ͨÄÚÈÝ£¬£¬£¬ £¬£¬£¬»áÁýÕÖÉϼ¶Í³Ò»Ö¸¶¨µÄ alert ÐÅÏ¢£»£»£»£»£»£»Ä¬ÈÏÄÚÈÝ¿ÉÒÔΪ¿Õ×Ö·û´®£¬£¬£¬ £¬£¬£¬ÌåÏÖ²»Õ¹Ê¾µ½Í¨ÖªÀ¸, Ö§³Ö×Ö·û´®ºÍÊý×éÁ½ÖÖÐÎʽ | | sound | ÌåÏÖ֪ͨÌáÐÑÉùÒô£¬£¬£¬ £¬£¬£¬Ä¬ÈÏÌî³äΪ¿Õ×Ö·û´® | | badge | ÌåÏÖÓ¦ÓýDZ꣬£¬£¬ £¬£¬£¬°Ñ½Ç±êÊý×Ö¸ÄΪָ¶¨µÄÊý×Ö£»£»£»£»£»£»Îª 0 ÌåÏÖɨ³ý£¬£¬£¬ £¬£¬£¬Ö§³Ö '+1','-1' ÕâÑùµÄ×Ö·û´®£¬£¬£¬ £¬£¬£¬ÌåÏÖÔÚÔ­ÓÐµÄ badge »ù´¡ÉϾÙÐÐÔö¼õ£¬£¬£¬ £¬£¬£¬Ä¬ÈÏÌî³äΪ '+1' | | content-available | ÌåÏÖÍÆËͽÐÐÑ£¬£¬£¬ £¬£¬£¬½ö½ÓÊÜ true ÌåÏÖΪ Background Remote Notification£¬£¬£¬ £¬£¬£¬Èô²»ÌîĬÈÏÌåÏÖͨË×µÄ Remote Notification | | mutable-content | ÌåÏÖ֪ͨÀ©Õ¹, ½ö½ÓÊÜ true ÌåÏÖÖ§³Ö iOS10 µÄ UNNotificationServiceExtension, Èô²»ÌîĬÈÏÌåÏÖͨË×µÄ Remote Notification | | category | IOS8²ÅÖ§³Ö¡£¡£¡£¡£ÉèÖà APNs payload ÖÐµÄ 'category' ×Ö¶ÎÖµ | | extras | ÌåÏÖÀ©Õ¹×ֶΣ¬£¬£¬ £¬£¬£¬½ÓÊÜÒ»¸öÊý×飬£¬£¬ £¬£¬£¬×Ô½ç˵ Key/value ÐÅÏ¢ÒÔ¹©ÓªÒµÊ¹Óà | **Android Notification** ```php // androidNotification($alert = '', array $notification = array()) // ŲÓÃʾÀýͬ IOS£¬£¬£¬ £¬£¬£¬Êý×é $notification µÄ¼üÖ§³Ö 'title', 'builder_id', 'priority', 'category', 'style', 'alert_type', 'big_text', 'inbox', 'big_pic_path', 'extras' ÖеÄÒ»¸ö»ò¶à¸ö ``` ²ÎÊý˵Ã÷: | ²ÎÊý | ˵Ã÷ | | --- | --- | | alert | ÌåÏÖ֪ͨÄÚÈÝ£¬£¬£¬ £¬£¬£¬»áÁýÕÖÉϼ¶Í³Ò»Ö¸¶¨µÄ alert ÐÅÏ¢£»£»£»£»£»£»Ä¬ÈÏÄÚÈÝ¿ÉÒÔΪ¿Õ×Ö·û´®£¬£¬£¬ £¬£¬£¬ÌåÏÖ²»Õ¹Ê¾µ½Í¨ÖªÀ¸ | | title | ÌåÏÖ֪ͨÎÊÌ⣬£¬£¬ £¬£¬£¬»áÌæ»»Í¨ÖªÀïÔ­À´Õ¹Ê¾ App Ãû³ÆµÄµØ·½ | | builder_id | ÌåÏÖ֪ͨÀ¸Ñùʽ ID | | priority | ÌåÏÖ֪ͨÀ¸Õ¹ÊÕ¬ÅÏȼ¶£¬£¬£¬ £¬£¬£¬Ä¬ÒÔΪ 0£¬£¬£¬ £¬£¬£¬¹æÄ£Îª -2¡«2 £¬£¬£¬ £¬£¬£¬ÆäËûÖµ½«»á±»ºöÂÔ¶ø½ÓÄÉĬÈÏÖµ | | category | ÌåÏÖ֪ͨÀ¸ÌõÄ¿¹ýÂË»òÅÅÐò£¬£¬£¬ £¬£¬£¬ÍêÈ«ÒÀÀµ rom ³§ÉÌ¶Ô category µÄ´¦ÀíÕ½ÂÔ | | style | ÌåÏÖ֪ͨÀ¸ÑùʽÀàÐÍ£¬£¬£¬ £¬£¬£¬Ä¬ÒÔΪ 0£¬£¬£¬ £¬£¬£¬ÉÐÓÐ1£¬£¬£¬ £¬£¬£¬2£¬£¬£¬ £¬£¬£¬3¿ÉÑ¡£¬£¬£¬ £¬£¬£¬ÓÃÀ´Ö¸¶¨Ñ¡ÔñÄÄÖÖ֪ͨÀ¸Ñùʽ£¬£¬£¬ £¬£¬£¬ÆäËûÖµÎÞЧ¡£¡£¡£¡£ÓÐÈýÖÖ¿ÉÑ¡»®·ÖΪ bigText=1£¬£¬£¬ £¬£¬£¬Inbox=2£¬£¬£¬ £¬£¬£¬bigPicture=3 | | alert_type | ÌåÏÖ֪ͨÌáÐÑ·½Ê½£¬£¬£¬ £¬£¬£¬ ¿ÉÑ¡¹æÄ£Îª -1¡«7 £¬£¬£¬ £¬£¬£¬¶ÔÓ¦ Notification.DEFAULT_ALL = -1 »òÕß Notification.DEFAULT_SOUND = 1£¬£¬£¬ £¬£¬£¬ Notification.DEFAULT_VIBRATE = 2£¬£¬£¬ £¬£¬£¬ Notification.DEFAULT_LIGHTS = 4 µÄí§Òâ ¡°or¡± ×éºÏ¡£¡£¡£¡£Ä¬ÈÏÆ¾Ö¤ -1 ´¦Àí¡£¡£¡£¡£ | | big_text | ÌåÏÖ´óÎı¾Í¨ÖªÀ¸Ñùʽ£¬£¬£¬ £¬£¬£¬µ± style = 1 ʱ¿ÉÓ㬣¬£¬ £¬£¬£¬ÄÚÈݻᱻ֪ͨÀ¸ÒÔ´óÎı¾µÄÐÎʽչʾ³öÀ´£¬£¬£¬ £¬£¬£¬Ö§³Ö api 16 ÒÔÉ쵀 rom | | inbox | ÌåÏÖÎı¾ÌõĿ֪ͨÀ¸Ñùʽ£¬£¬£¬ £¬£¬£¬½ÓÊÜÒ»¸öÊý×飬£¬£¬ £¬£¬£¬µ± style = 2 ʱ¿ÉÓ㬣¬£¬ £¬£¬£¬Êý×éµÄÿ¸ö key ¶ÔÓ¦µÄ value »á±»¿´³ÉÎı¾ÌõÄ¿ÖðÌõչʾ£¬£¬£¬ £¬£¬£¬Ö§³Ö api 16 ÒÔÉ쵀 rom | | big_pic_path | ÌåÏÖ´óͼƬ֪ͨÀ¸Ñùʽ£¬£¬£¬ £¬£¬£¬µ± style = 3 ʱ¿ÉÓ㬣¬£¬ £¬£¬£¬¿ÉÒÔÊÇÍøÂçͼƬ url£¬£¬£¬ £¬£¬£¬»òÍâµØÍ¼Æ¬µÄ path£¬£¬£¬ £¬£¬£¬ÏÖÔÚÖ§³Ö .jpg ºÍ .png ºó׺µÄͼƬ¡£¡£¡£¡£Í¼Æ¬ÄÚÈݻᱻ֪ͨÀ¸ÒÔ´óͼƬµÄÐÎʽչʾ³öÀ´¡£¡£¡£¡£ÈôÊÇÊÇ http£¯https µÄ url£¬£¬£¬ £¬£¬£¬»á×Ô¶¯ÏÂÔØ£»£»£»£»£»£»ÈôÊÇÒªÖ¸¶¨¿ª·¢Õß×¼±¸µÄÍâµØÍ¼Æ¬¾ÍÌî sdcard µÄÏà¶Ô·¾¶£¬£¬£¬ £¬£¬£¬Ö§³Ö api 16 ÒÔÉ쵀 rom | | extras | ÌåÏÖÀ©Õ¹×ֶΣ¬£¬£¬ £¬£¬£¬½ÓÊÜÒ»¸öÊý×飬£¬£¬ £¬£¬£¬×Ô½ç˵ Key/value ÐÅÏ¢ÒÔ¹©ÓªÒµÊ¹Óà | **WinPhone Notification** ```php $push->addWinPhoneNotification($alert=null, $title=null, $_open_page=null, $extras=null) ``` ²ÎÊý˵Ã÷: | ²ÎÊý | ˵Ã÷ | | --- | --- | | alert | ÌåÏÖ֪ͨÄÚÈÝ£¬£¬£¬ £¬£¬£¬»áÁýÕÖÉϼ¶Í³Ò»Ö¸¶¨µÄ alert ÐÅÏ¢£»£»£»£»£»£»ÄÚÈÝΪ¿ÕÔò²»Õ¹Ê¾µ½Í¨ÖªÀ¸ | | title | ֪ͨÎÊÌ⣬£¬£¬ £¬£¬£¬»áÌî³äµ½ toast ÀàÐÍ text1 ×Ö¶ÎÉÏ | | _open_page | µã»÷·­¿ªµÄÒ³ÃæÃû³Æ | #### Message ```php // message($msg_content, array $msg = array()) // Êý×é $msg µÄ¼üÖ§³Ö 'title', 'content_type', 'extras' ÖеÄÒ»¸ö»ò¶à¸ö // ŲÓÃʾÀý $push->message('Hello JPush'); // OR $push->message('Hello JPush', [ 'title' => 'Hello', 'content_type' => 'text', 'extras' => [ 'key' => 'value' ] ]); ``` ²ÎÊý˵Ã÷: | ²ÎÊý | ˵Ã÷ | | --- | --- | | msg_content | ÐÂÎÅÄÚÈÝ×Ô¼º | | title | ÐÂÎÅÎÊÌâ | | content_type | ÐÂÎÅÄÚÈÝÀàÐÍ | | extras | ÌåÏÖÀ©Õ¹×ֶΣ¬£¬£¬ £¬£¬£¬½ÓÊÜÒ»¸öÊý×飬£¬£¬ £¬£¬£¬×Ô½ç˵ Key/value ÐÅÏ¢ÒÔ¹©ÓªÒµÊ¹Óà | #### Sms Message ```php $push->setSms($delay_time, $temp_id, array $temp_para = []) ``` ²ÎÊý˵Ã÷: * delay_time: ÌåÏÖ¶ÌÐÅ·¢Ë͵ÄÑÓ³Ùʱ¼ä£¬£¬£¬ £¬£¬£¬µ¥Î»ÎªÃ룬£¬£¬ £¬£¬£¬²»¿ÉÁè¼Ý 24 Сʱ(¼´´óÓÚ¼´ÊÇ 0 СÓÚ¼´ÊÇ 86400)¡£¡£¡£¡£½ö¶Ô android ƽ̨ÓÐÓᣡ£¡£¡£ * temp_id: ¶ÌÐÅÔö²¹µÄÄÚÈÝÄ£°å ID¡£¡£¡£¡£Ã»ÓÐÌîд¸Ã×ֶμ´ÌåÏÖ²»Ê¹ÓöÌÐÅÔö²¹¹¦Ð§¡£¡£¡£¡£ * temp_para: ¶ÌÐÅÄ£°åÖеIJÎÊý ##### ÒÑÆúÓà ```php $push->setSmsMessage($content, $delay_time) ``` ²ÎÊý˵Ã÷: * content: ¶ÌÐÅÎı¾£¬£¬£¬ £¬£¬£¬²»Áè¼Ý 480 ×Ö·û * delay_time: ÌåÏÖ¶ÌÐÅ·¢Ë͵ÄÑÓ³Ùʱ¼ä£¬£¬£¬ £¬£¬£¬µ¥Î»ÎªÃ룬£¬£¬ £¬£¬£¬²»¿ÉÁè¼Ý 24 Сʱ(¼´´óÓÚ¼´ÊÇ 0 СÓÚ¼´ÊÇ 86400)¡£¡£¡£¡£½ö¶Ô android ƽ̨ÓÐÓᣡ£¡£¡£Ä¬ÒÔΪ 0£¬£¬£¬ £¬£¬£¬ÌåÏÖÁ¬Ã¦·¢ËͶÌÐÅ #### Options ```php // options(array $opts = array()) // Êý×é $opts µÄ¼üÖ§³Ö 'sendno', 'time_to_live', 'override_msg_id', 'apns_production', 'big_push_duration' ÖеÄÒ»¸ö»ò¶à¸ö ``` ²ÎÊý˵Ã÷: | ¿ÉÑ¡Ïî | ˵Ã÷ | | --- | --- | | sendno | ÌåÏÖÍÆËÍÐòºÅ£¬£¬£¬ £¬£¬£¬´¿´âÓÃÀ´×÷Ϊ API ŲÓñêʶ£¬£¬£¬ £¬£¬£¬API ·µ»ØÊ±±»Ô­Ñù·µ»Ø£¬£¬£¬ £¬£¬£¬ÒÔÀû±ã API ŲÓ÷½Æ¥ÅäÇëÇóÓë·µ»Ø | | time_to_live | ÌåÏÖÀëÏßÐÂÎű£´æÊ±³¤(Ãë)£¬£¬£¬ £¬£¬£¬ÍÆËÍÄ¿½ñÓû§²»ÔÚÏßʱ£¬£¬£¬ £¬£¬£¬Îª¸ÃÓû§±£´æ¶à³¤Ê±¼äµÄÀëÏßÐÂÎÅ£¬£¬£¬ £¬£¬£¬ÒÔ±ãÆäÉÏÏßʱÔÙ´ÎÍÆËÍ¡£¡£¡£¡£Ä¬ÈÏ 86400 £¨1 Ì죩£¬£¬£¬ £¬£¬£¬× 10 Ìì¡£¡£¡£¡£ÉèÖÃΪ 0 ÌåÏÖ²»±£´æÀëÏßÐÂÎÅ£¬£¬£¬ £¬£¬£¬Ö»ÓÐÍÆËÍÄ¿½ñÔÚÏßµÄÓû§¿ÉÒÔÊÕµ½ | | override_msg_id | ÌåÏÖÒªÁýÕÖµÄÐÂÎÅID£¬£¬£¬ £¬£¬£¬ÈôÊÇÄ¿½ñµÄÍÆËÍÒªÁýÕÖ֮ǰµÄÒ»ÌõÍÆËÍ£¬£¬£¬ £¬£¬£¬ÕâÀïÌîдǰһÌõÍÆË굀 msg_id ¾Í»á±¬·¢ÁýÕÖЧ¹û | | apns_production | ÌåÏÖ APNs ÊÇ·ñÉú²úÇéÐΣ¬£¬£¬ £¬£¬£¬True ÌåÏÖÍÆËÍÉú²úÇéÐΣ¬£¬£¬ £¬£¬£¬False ÌåÏÖÒªÍÆËÍ¿ª·¢ÇéÐΣ»£»£»£»£»£»ÈôÊDz»Ö¸¶¨ÕÂĬÒÔÎªÍÆËÍ¿ª·¢ÇéÐÎ | | apns_collapse_id | APNs ÐÂ֪ͨÈôÊÇÆ¥Å䵽Ŀ½ñ֪ͨÖÐÐÄÓÐÏàͬ apns-collapse-id ×ֶεÄ֪ͨ£¬£¬£¬ £¬£¬£¬Ôò»áÓÃÐÂ֪ͨÄÚÈÝÀ´¸üÐÂËü£¬£¬£¬ £¬£¬£¬²¢Ê¹ÆäÖÃÓÚ֪ͨÖÐÐÄÊ×λ£»£»£»£»£»£»collapse id ³¤¶È²»¿ÉÁè¼Ý 64 bytes| | big_push_duration | ÌåÏÖ¶¨ËÙÍÆËÍʱ³¤(·ÖÖÓ)£¬£¬£¬ £¬£¬£¬ÓÖÃû»ºÂýÍÆËÍ£¬£¬£¬ £¬£¬£¬°ÑÔ­±¾¾¡¿ÉÄÜ¿ìµÄÍÆËÍËÙÂÊ£¬£¬£¬ £¬£¬£¬½µµÍÏÂÀ´£¬£¬£¬ £¬£¬£¬¸ø¶¨µÄ n ·ÖÖÓÄÚ£¬£¬£¬ £¬£¬£¬ÔȳƵØÏòÕâ´ÎÍÆË͵ÄÄ¿µÄÓû§ÍÆËÍ¡£¡£¡£¡£×î´óֵΪ1400.δÉèÖÃÔò²»ÊǶ¨ËÙÍÆËÍ | #### Common Method ```php // ·¢ËÍÍÆËÍ // ¸ÃÒªÁìÄÚ²¿½«×Ô¶¯Å²Óù¹½¨ÒªÁì»ñÊÊÄ¿½ñ¹¹½¨¹¤¾ß£¬£¬£¬ £¬£¬£¬²¢×ª»¯Îª JSON Ïò JPush ·þÎñÆ÷·¢ËÍÇëÇó $push->send(); ``` > ¹¹½¨ PushPayload µÄ API ÿһ´Î¶¼»á·µ»Ø×ÔÉíµÄÒýÓ㬣¬£¬ £¬£¬£¬ÒÔÊÇÎÒÃÇ¿ÉÓÃʹÓÃÁ´Ê½Å²ÓõÄÒªÁìÌá¸ß´úÂëµÄ¾«Á·ÐÔ£¬£¬£¬ £¬£¬£¬Èç: ```php $response = $push() ->setCid('xxxxxx') ->setPlatform(['ios', 'android']) ->addTag(['tag1', 'tag2']) ->setNotificationAlert('Hello, JPush') ->iosNotification('hello', [ 'sound' => 'sound', 'badge' => '+1', 'extras' => [ 'key' => 'value' ] ]) ->androidNotification('hello') ->message('Hello JPush', [ 'title' => 'Hello', 'content_type' => 'text', 'extras' => [ 'key' => 'value' ] ]) ->send(); // OR Ò²¿ÉÒÔÌáǰ׼±¸ºÃËùÓеIJÎÊý£¬£¬£¬ £¬£¬£¬È»ºóÁ´Ê½Å²Ó㬣¬£¬ £¬£¬£¬ÕâÑù´úÂë¿É¶ÁÐÔ¸üºÃÒ»µã $cid = 'xxxxxx'; $platform = array('ios', 'android'); $alert = 'Hello JPush'; $tag = array('tag1', 'tag2'); $regId = array('rid1', 'rid2'); $ios_notification = array( 'sound' => 'hello jpush', 'badge' => 2, 'content-available' => true, 'category' => 'jiguang', 'extras' => array( 'key' => 'value', 'jiguang' ), ); $android_notification = array( 'title' => 'hello jpush', 'builder_id' => 2, 'extras' => array( 'key' => 'value', 'jiguang' ), ); $content = 'Hello World'; $message = array( 'title' => 'hello jpush', 'content_type' => 'text', 'extras' => array( 'key' => 'value', 'jiguang' ), ); $options = array( 'sendno' => 100, 'time_to_live' => 100, 'override_msg_id' => 100, 'big_push_duration' => 100 ); $response = $push->setCid($cid) ->setPlatform($platform) ->addTag($tag) ->addRegistrationId($regId) ->iosNotification($alert, $ios_notification) ->androidNotification($alert, $android_notification) ->message($content, $message) ->options($options) ->send(); ``` #### »ñÈ¡ Cid ```php $push->getCid($count = 1, $type = 'push'); ``` ## Report API ```php $report = $client->report(); ``` #### »ñÈ¡ËÍ´ïͳ¼Æ ```php $report->getReceived('msg_id'); // OR $report->getReceived(['msg_id1', 'msg_id2']); ``` #### ËÍ´ï״̬ÅÌÎÊ ```php $report->getMessageStatus('msg_id0', 'rid0') # OR $report->getMessageStatus('msg_id0', ['rid0', 'rid1']) #OR $report->getMessageStatus('msg_id0', ['rid0', 'rid1'], '2017-12-21') ``` #### »ñÈ¡ÐÂÎÅͳ¼Æ ```php // getMessages(getMessages($msgIds)); // ÐÂÎÅͳ¼ÆÓëËÍ´ïͳ¼ÆÒ»Ñù£¬£¬£¬ £¬£¬£¬½ÓÊÜÒ»¸öÊý×éµÄ²ÎÊý£¬£¬£¬ £¬£¬£¬ÔÚÕâÀï²»×ö׸Êö ``` #### »ñÈ¡Óû§Í³¼Æ ŲÓÃһϴúÂë¿ÉÒÔ»ñµÃÓû§Í³¼Æ ```php $report->getUsers($time_unit, $start, $duration) ``` ²ÎÊý˵Ã÷: - time_unit:`String` ʱ¼äµ¥Î», ¿ÉȡֵHOUR, DAY, MONTH - start:`String` Æðʼʱ¼ä - ÈôÊǵ¥Î»ÊÇСʱ£¬£¬£¬ £¬£¬£¬ÔòÆðʼʱ¼äÊÇСʱ£¨°üÀ¨Ì죩£¬£¬£¬ £¬£¬£¬ÃûÌÃÀý£º2014-06-11 09 - ÈôÊǵ¥Î»ÊÇÌ죬£¬£¬ £¬£¬£¬ÔòÆðʼʱ¼äÊÇÈÕÆÚ£¨Ì죩£¬£¬£¬ £¬£¬£¬ÃûÌÃÀý£º2014-06-11 - ÈôÊǵ¥Î»ÊÇÔ£¬£¬£¬ £¬£¬£¬ÔòÆðʼʱ¼äÊÇÈÕÆÚ£¨Ô£©£¬£¬£¬ £¬£¬£¬ÃûÌÃÀý£º2014-06 - duration:`String` Ò»Á¬Ê±³¤ - ÈôÊǵ¥Î»ÊÇÌ죬£¬£¬ £¬£¬£¬ÔòÊÇÒ»Á¬µÄÌìÊý¡£¡£¡£¡£ÒÔ´ËÀàÍÆ - Ö»Ö§³ÖÅÌÎÊ60ÌìÒÔÄÚµÄÓû§ÐÅÏ¢£¬£¬£¬ £¬£¬£¬¹ØÓÚtime_unitΪHOURµÄ£¬£¬£¬ £¬£¬£¬Ö»Ö§³ÖÊä³öµ±ÌìµÄͳ¼ÆÐ§¹û¡£¡£¡£¡£ ## Device API ```php $device = $client->device(); ``` #### ²Ù×÷ Device(registration_id) ```php // ÅÌÎÊÖ¸¶¨×°±¸µÄÓÖÃûÓë±êÇ© $device->getDevices($registration_id); // ¸üÐÂÖ¸¶¨×°±¸µÄÓÖÃûÓë±êÇ© // ¸üРAlias $device->updateAlias($registration_id, 'alias'); // Ìí¼Ó tag, Ö§³Ö×Ö·û´®ºÍÊý×éÁ½ÖÖ²ÎÊý $device->addTags($registration_id, 'tag'); // OR $device->addTags($registration_id, ['tag1', 'tag2']); // ÒÆ³ý tag£¬£¬£¬ £¬£¬£¬Ö§³Ö×Ö·û´®ºÍÊý×éÁ½ÖÖ²ÎÊý $device->removeTags($registration_id, 'tags'); // OR $device->removeTags($registration_id, ['tag1', 'tag2']); // Çå¿ÕËùÓÐ tag $device->clearTags($registration_id); // ¸üРmobile $device->updateMoblie($registration_id, '13800138000'); // getDevicesStatus($registrationId) // »ñÈ¡ÔÚÏßÓû§µÄµÇ¼״̬£¨VIPרÊô½Ó¿Ú£©,Ö§³Ö×Ö·û´®ºÍÊý×éÁ½ÖÖ²ÎÊý $device->getDevicesStatus('rid'); // OR $device->getDevicesStatus(['rid1', 'rid2']); ``` #### ²Ù×÷±êÇ© ```php // »ñÈ¡±êÇ©Áбí $device->getTags() // ÅжÏÖ¸¶¨×°±¸ÊÇ·ñÔÚÖ¸¶¨±êǩ֮Ï $device->isDeviceInTag($registrationId, $tag); // ¸üбêÇ© // Ϊ±êÇ©Ìí¼Ó×°±¸£¬£¬£¬ £¬£¬£¬Ö§³Ö×Ö·û´®ºÍÊý×éÁ½ÖÖ²ÎÊý $device->addDevicesToTag($tag, 'rid'); $device->addDevicesToTag($tag, ['rid1', 'rid2']); // Ϊ±êÇ©ÒÆ³ý×°±¸£¬£¬£¬ £¬£¬£¬Ö§³Ö×Ö·û´®ºÍÊý×éÁ½ÖÖ²ÎÊý $device->removeDevicesFromTag($tag, 'rid'); $device->removeDevicesFromTag($tag, ['rid1', 'rid2']); // ɾ³ý±êÇ© $device->deleteTag('tag'); ``` #### ²Ù×÷ÓÖÃû ```php // »ñȡָ¶¨ÓÖÃûϵÄ×°±¸ $device->getAliasDevices('alias'); // ɾ³ýÓÖÃû $device->deleteAlias('alias'); ``` ## Schedule API ```php $schedule = $client->schedule(); ``` #### ½¨Éè׼ʱʹÃü ׼ʱʹÃü·ÖΪSingleÓëPeriodicalÁ½ÖÖ£¬£¬£¬ £¬£¬£¬¿ÉÒÔͨ¹ýŲÓÃÒÔÏÂÒªÁ콨Éè׼ʱʹÃü ```php $schedule->createSingleSchedule($name, $push_payload, $trigger) $schedule->createPeriodicalSchedule($name, $push_payload, $trigger) ``` ²ÎÊý˵Ã÷: - name: `String` ׼ʱʹÃüµÄÃû³Æ - push_payload: `PushPayload` PushµÄ¹¹½¨¹¤¾ß£¬£¬£¬ £¬£¬£¬Í¨¹ýPushÄ£¿£¿éµÄ`build()`ÒªÁì»ñµÃ - trigger: `Array` ´¥·¢Æ÷¹¤¾ß #### ¸üÐÂ׼ʱʹÃü ```php $schedule->updateSingleSchedule($schedule_id, $name=null, $enabled=null, $push_payload=null, $trigger=null) $schedule->updatePeriodicalSchedule($schedule_id, $name=null, $enabled=null, $push_payload=null, $trigger=null) ``` #### ÆäËû ```php // »ñȡ׼ʱʹÃüÁбí $schedule->getSchedules($page=1); // »ñȡָ¶¨×¼Ê±Ê¹Ãü $schedule->getSchedule($schedule_id); // ɾ³ýÖ¸¶¨×¼Ê±Ê¹Ãü $schedule->deleteSchedule($schedule_id); ``` ## Exception Handle µ± API ÇëÇ󱬷¢¹ýʧʱ£¬£¬£¬ £¬£¬£¬SDK ½«Å׳öÒì³££¬£¬£¬ £¬£¬£¬Pushpayload Ïêϸ¹ýʧ´úÂëÇë²Î¿¼[ API ¹ýʧ´úÂë±í](https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#_19)¡£¡£¡£¡£ PHP SDK Ö÷ÒªÅ׳öÁ½¸öÒì³£ `\JPush\Exceptions\APIConnectionException` ºÍ `\JPush\Exceptions\APIRequestException` »®·Ö¶ÔÓ¦ÇëÇóÅþÁ¬±¬·¢µÄÒì³£ºÍÇëÇóÏìÓ¦µÄÒì³£¡£¡£¡£¡£ ÕâÁ½ÖÖÒì³£¶¼ÐèÒª²¶»ñ£¬£¬£¬ £¬£¬£¬Îª¼òÆÓÆð¼û£¬£¬£¬ £¬£¬£¬Ò²¿ÉÒÔ²¶»ñËûÃǵĸ¸ÀàÒì³£ `JPush\Exceptions\JPushException`£¨¼û README£©¡£¡£¡£¡£ÁíÍâ APIRequestException Òì³£»£»£»£»£»£»¹ÌṩÆäËûÒªÁ칩¿ª·¢ÕßŲÓᣡ£¡£¡£ ```php try { $pusher->send(); } catch (\JPush\Exceptions\APIConnectionException $e) { // try something here print $e; } catch (\JPush\Exceptions\APIRequestException $e) { // try something here print $e; } ```