/** * 推送消息到app * @param $content * @param $title * @param $extras */ private function pushMessage($content, $title, $extras) { $pushConf = C('push'); $br = '<br/>'; $app_key = $pushConf['app_key']; $master_secret = $pushConf['master_secret']; $client = new JPushClient($app_key, $master_secret); try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification(M\android($content, $title, 3, $extras)))->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail.' . $br; echo 'message' . $e->getMessage() . $br; } }
/** * Execute the job. * * @param JPushClient $client */ public function handle(JPushClient $client) { $error = ''; try { if ($this->download($this->url)) { $package = Package::createFromFile($this->tmpFile, basename($this->url), $this->user->id); $result = Push::send($this->devices, $package, $this->user->id); try { if ($this->devices->count() > 1) { $msg = "已在向{$this->devices->count()}台设备发出推送..."; } else { $msg = "已向{$this->devices->first()->alias}发出推送..."; } Log::info($msg); } catch (\Exception $e) { Log::error('[PushApk Job]推送失败' . $e->getMessage()); return; } } else { $error = trans('errors.download_failed'); Log::error('[PushApk Job]下载文件失败: ' . $this->url); } } catch (Exception $e) { $error = $e->getMessage(); Log::error('[PushApk]' . $e->getMessage() . ' ' . $this->url); } $installIds = $this->devices->pluck('install_id')->toArray(); try { $result = $client->push()->setPlatform(M\all)->setAudience(M\registration_id($installIds))->setNotification(M\notification('出现错误,请检查URL是否正确'))->send(); } catch (Exception $ignored) { } }
public function push() { $app_key = $this->settings['jpushkey']; $master_secret = $this->settings['jpushsecret']; //'46867b6b0c46b34ee6848b56'; $client = new JPushClient($app_key, $master_secret); $device_token = $this->input['device_token']; if (!$device_token) { $this->errorOutput('NO_DEVICE_TOKEN'); } $message = $this->input['message']; if (!$message) { $this->errorOutput('NO_MESSAGE'); } $module = $this->input['module']; $content_id = $this->input['content_id']; if ($module) { $options = array($module => $content_id); } else { $options = array(); } $result = $client->push()->setPlatform(M\Platform('android'))->setAudience(M\audience(M\alias(array($device_token))))->setNotification(M\notification($message, M\android($message, '', 1, $options)))->send(); $this->addItem_withkey('result', $result->isOk ? 1 : 0); $this->output(); }
function send($content) { $br = '<br/>'; $client = new JPushClient($this->_app_key, $this->_master_secret); $result = $client->push()->setPlatform(JPushModel\all)->setAudience(JPushModel\all)->setNotification(JPushModel\notification($content))->send(); return $result; }
public static function iosPush($user, $user_info) { $br = '<br/>'; $client = new JPushClient($app_key, $master_secret); try { $result = $client->push()->setPlatform(M\platform('ios'))->setAudience(M\audience(M\alias(array($user->id))))->setNotification(M\ios($user_info))->send(); //测试用 // echo 'Push Success.' . $br; // echo 'sendno : ' . $result->sendno . $br; // echo 'msg_id : ' .$result->msg_id . $br; // echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { return Response::json(array('errCode' => 1, 'message' => 'Push Fail.' . $br . 'Http Code : ' . $e->httpCode . $br . 'code : ' . $e->code . $br . 'message : ' . $e->message . $br . 'Response JSON : ' . $e->json . $br . 'rateLimitLimit : ' . $e->rateLimitLimit . $br . 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br . 'rateLimitReset : ' . $e->rateLimitReset . $br)); // echo 'Push Fail.' . $br; // echo 'Http Code : ' . $e->httpCode . $br; // echo 'code : ' . $e->code . $br; // echo 'message : ' . $e->message . $br; // echo 'Response JSON : ' . $e->json . $br; // echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; // echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; // echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { return Response::json(array('errCode' => 2, 'message' => 'Push Fail.' . $br . 'message' . $e->getMessage() . $br)); // echo 'Push Fail.' . $br; // echo 'message' . $e->getMessage() . $br; } }
/** * * 根据Tag推送消息 * @param $content * @param $title * @param $extras * @param $tags */ public function pushMessageByTags($content, $title, $extras, $tags) { $client = new JPushClient($this->app_key, $this->master_secret); try { $result = $client->push()->setPlatform(M\all)->setAudience(M\audience(M\tag($tags)))->setNotification(M\notification(M\android($content, $title, 3, $extras)))->send(); } catch (APIRequestException $e) { } catch (APIConnectionException $e) { } }
/** * [push 根据标签推送] * @param [type] $tag [标签] * @param [type] $msg [信息数组] * @return [type] [description] */ public function push_by_tag($tag, $msg) { try { $client = new JPushClient($this->app_key, $this->master_secret); $result = $client->push()->setPlatform(M\all)->setAudience(M\audience(M\tag($tag)))->setNotification(M\notification($msg))->send(); } catch (APIRequestException $e) { } catch (APIConnectionException $e) { } }
/** * 推送 push_message */ public function push_message_registration($ids = array(), $notification = array()) { if ($ids && $notification) { vendor('jpush.autoload'); $app_key = C('API_PUSH_JPUSH.key'); $master_secret = C('API_PUSH_JPUSH.secret'); $client = new JPushClient($app_key, $master_secret); $client->push()->setPlatform(M\all)->setAudience(M\registration_id($ids))->setNotification(M\notification($notification['title'], M\android($notification['title'], $notification['title'], NULL, $notification['extras']), M\ios($notification['title'], 'default', 1)))->setOptions(M\options(NULL, NULL, NULL, true))->send(); } }
public static function pushMessage($uids, $alert, array $extras = null) { $config = self::getConfig(); $app_key = $config['app_key']; $master_secret = $config['master_secret']; if (!$app_key || !$master_secret) { return; } $client = new JPushClient($app_key, $master_secret); try { $uids = array_values(array_map('strval', $uids)); $audience = M\audience(M\alias($uids)); $notification = M\notification($alert, M\android($alert, null, null, $extras), M\ios($alert, null, null, null, $extras)); $result = $client->push()->setPlatform(M\all)->setAudience($audience)->setNotification($notification)->send(); //echo 'Push Success.' . PHP_EOL; //echo 'sendno : ' . $result->sendno . PHP_EOL; //echo 'msg_id : ' .$result->msg_id . PHP_EOL; //echo 'Response JSON : ' . $result->json . PHP_EOL; } catch (\Exception $e) { echo 'Push Fail: ' . $e->getMessage() . PHP_EOL; } }
public function jpushpush($data) { import("@.tool.vendor.autoload"); $client = new JPushClient(C('JPUSH_APP_KEY'), C('JPUSH_APP_SECRET')); if (!$data) { $ret['isok'] = false; $ret['msg'] = 'no data'; } elseif (!$data['audience']) { $ret['isok'] = false; $ret['msg'] = 'no audience'; } elseif ($data && $data['audience']) { $data['platform'] = $data['platform'] ? $data['platform'] : 'all'; $data['msg_content'] = $data['msg_content'] ? $data['msg_content'] : '内容'; $data['title'] = $data['title'] ? $data['title'] : '标题'; $data['content_type'] = $data['content_type'] ? $data['content_type'] : '类型'; $data['extras'] = array("type" => '10', "order_id" => '20'); $result = $client->push()->setPlatform($data['platform'])->setAudience($data['audience'])->setMessage(M\message($data['msg_content'], $data['title'], $data['content_type'], $data['extras']))->send(); $ret['isok'] = $result->isOk; $ret['msg'] = ''; $ret['sendno'] = $result->sendno; } }
public function easy_push($id, $content = 'hello') { $br = '<br/>'; $spilt = ' - '; $master_secret = '3dd1c77ac980516110338aa5'; $app_key = 'ab36dbc34e0501604d25974e'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); $json = array('type' => 2); //echo $json; try { $result = $client->push()->setPlatform(M\all)->setAudience(M\alias(array($id)))->setNotification(M\notification($content, M\android('hi,android', $title = null, $builder_id = null, $extras = $json)))->printJSON()->send(); /*$result = $client->push() ->setPlatform(M\all) ->setAudience(M\alias(array($id))) ->setNotification(M\notification($content)) ->printJSON() ->send();*/ echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail: ' . $br; echo 'Error Message: ' . $e->getMessage() . $br; //response timeout means your request has probably be received by JPUsh Server,please check that whether need to be pushed again. echo 'IsResponseTimeout: ' . $e->isResponseTimeout . $br; } }
<?php require_once 'vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\JPushLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $spilt = ' - '; $master_secret = 'd94f733358cca97b18b2cb98'; $app_key = '47a3ddda34b2602fa9e17c01'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); $br = '<br/>'; $TAG1 = "tag1"; $TAG2 = "tag2"; $TAG3 = "tag3"; $TAG4 = "tag4"; $ALIAS1 = "alias1"; $ALIAS2 = "alias2"; $REGISTRATION_ID1 = "0900e8d85ef"; $REGISTRATION_ID2 = "0a04ad7d8b4"; /*----Common Method----*/ function printAPIRequestErrorStack($e) { $br = '<br/>'; echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br;
<?php require_once 'vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\JPushLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $spilt = ' - '; $master_secret = 'd94f733358cca97b18b2cb98'; $app_key = '47a3ddda34b2602fa9e17c01'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); //easy push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification('Hi, JPush'))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br;
require_once 'vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\JPushLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $spilt = ' - '; /*$master_secret = 'd94f733358cca97b18b2cb98'; $app_key='47a3ddda34b2602fa9e17c01';*/ $app_key = 'e5c0d34f58732cf09b2d4d74'; $master_secret = '4cdda6d3c8b029941dbc5cb3'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); try { echo '<h1>API /v3/report</h1>'; $msg_ids = '1150720279,1492401191,1150722083'; $result = $client->report($msg_ids); foreach ($result->received_list as $item) { echo '---------' . $br; echo 'msg_id : ' . $item->msg_id . $br; echo 'android_received : ' . $item->android_received . $br; echo 'ios_apns_sent : ' . $item->ios_apns_sent . $br; } } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br;
<?php require_once 'vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\JPushLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $spilt = ' - '; $master_secret = 'd94f733358cca97b18b2cb98'; $app_key = '47a3ddda34b2602fa9e17c01'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); //easy push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification('Hi, JPush', M\ios("Hi, IOS", "happy", "+1")))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br;
use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; use JPush\JPushClient; use JPush\Model as M; $fromCellPhone = isset($_REQUEST['cellPhone']) ? $_REQUEST['cellPhone'] : ""; $nickname = isset($_REQUEST['nickname']) ? $_REQUEST['nickname'] : "匿名"; $targetCellPhone = isset($_REQUEST['targetCellPhone']) ? $_REQUEST['targetCellPhone'] : ""; $message = isset($_REQUEST['message']) ? $_REQUEST['message'] : "召唤"; if (empty($targetCellPhone) or empty($fromCellPhone)) { die("nothing else comes so close"); } $target = $prefix . $targetCellPhone; $br = '<br/>'; $spilt = ' - '; //JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); // 以下演示推送给 Android, IOS 平台下Tag为tag1的用户的示例 try { $result = $client->push()->setPlatform(M\Platform('ios'))->setAudience(M\Audience(M\alias([$target])))->setNotification(M\notification('来自' . $nickname . '的指令:' . $message, M\ios('来自' . $nickname . '的指令:' . $message, "happy", "+1", true, ["from" => $nickname, "message" => $message], "BearRemoter")))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br;
public function testUsers() { $client = new JPushClient($this->appKey, $this->masterSecret); $result = $client->users('month', '2014-09', 2); $this->assertTrue($result->isOk === true); }
<?php require_once '../../third_party/vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $app_key = '74a7874f76fa5eb4e6baa6b3'; $master_secret = 'd50c83278b63a7b004da7364'; $br = '<br/>'; $client = new JPushClient($app_key, $master_secret); if (!isset($_POST['k'])) { exit; } $msg = $_POST['k']; $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setOptions(M\options(123456, null, null, true, 60))->setNotification(M\notification(M\ios($msg, 'happy', 1, true)))->send(); header('Location:' . $_SERVER['HTTP_REFERER']);
/** * 标记发现交警的地点, 并向附近用户推送提示信息 * @method markPolice * @return [type] * * @author wesley zhang <*****@*****.**> * @since 2015-08-11T16:30:19+0800 */ function markPolice() { global $db; $userid = $_REQUEST['userid']; $long = $_REQUEST['long']; $lat = $_REQUEST['lat']; $imgurl = $_REQUEST['imgurl']; $content = $_REQUEST['content']; $address = $_REQUEST['address']; if (!$userid) { $this->res['error'] = 1; $this->res['msg'] = '用户id不存在'; return $this->res; } $aNewRec = array('user_id' => $userid, 'longitude' => $long, 'latitude' => $lat, 'image_url' => $imgurl, 'content' => $content, 'address' => $address, 'created_date' => $db->now()); $id = $db->insert('mark_trafficpolice', $aNewRec); //获得附近停车用户 $aUsers = $this->_getNearbyUsers($long, $lat); $sPushMsg = '您当前' . $this->searchRadius . '千米的范围内有交警,请注意!'; if (count($aUsers)) { $sMsgType = 'markPolice'; //去除重复用户 $aPushAlias = array(); $aPushUsersInfo = array(); foreach ($aUsers as $user) { if (!in_array($user['user_name'], $aPushAlias) && $userid != $user['user_id']) { $aPushAlias[] = $user['user_name']; $aPushUsersInfo[] = $user; } } // 使用jpush 推送消息, // Options: 第一个参数为sendno,纯粹用来作为 API 调用标识,API 返回时被原样返回,以方便 API 调用方匹配请求与返回。 //Options: 第二个参数为time_to_live,0 表示不保留离线消息,只有推送当前在线的用户可以收到。默认 86400 (1 天),最长 10 天 // Options: http://docs.jpush.io/server/rest_api_v3_push/#options try { $client = new JPushClient($this->appKey, $this->masterSecret); $response = $client->push()->setPlatform(M\all)->setAudience(M\audience(M\alias($aPushAlias)))->setNotification(M\notification($sPushMsg))->setOptions(M\options($id, 0, null, true))->send(); // $aPusRes = $this->_objectToArray($response); // if($response->isOk == 1){ // //推送成功, 标记用户收到推送 // } } catch (Exception $e) { // print('<pre>'); // print_r($e->getMessage()); // print('</pre>'); } //不管推送是否成功, 都标记用户收到 foreach ($aPushUsersInfo as $user) { $aNewLog = array('mt_id' => $id, 'user_id' => $user['user_id'], 'push_content' => $sPushMsg, 'push_param' => $response->json, 'created_date' => $db->now()); $db->insert('mark_trafficpolice_received', $aNewLog); } } $aRes = array('id' => $id); if ($id) { $this->res['data'] = $aRes; $this->res['error'] = 0; $this->res['msg'] = '保存成功'; } else { $this->res['error'] = 1; $this->res['msg'] = '保存失败'; } return $this->res; }
use JPush\JPushClient; use JPush\JPushLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $spilt = ' - '; /*$master_secret = 'd94f733358cca97b18b2cb98'; $app_key='47a3ddda34b2602fa9e17c01';*/ $master_secret = 'c48e23b33f6a0065fce06e59'; $app_key = '0770fce0d05d7f5baf88dae7'; /*$master_secret = '24a6bb3051447e0b644021ef'; $app_key='6cede177da188c2915f3dcb7';*/ JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); //easy push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification('Hi, JPush'))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br;
/** * Index Page for this controller. * * Maps to the following URL * http://example.com/index.php/welcome * - or - * http://example.com/index.php/welcome/index * - or - * Since this controller is set as the default controller in * config/routes.php, it's displayed at http://example.com/ * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/<method_name> * * @see http://codeigniter.com/user_guide/general/urls.html */ public function index() { $br = '<br/>'; $spilt = ' - '; $master_secret = '3047c84ce72ed9ab392e6be1'; $app_key = '57d93d27208ab6e2516b129d'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); // easy push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification('Hi, JPush'))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail: ' . $br; echo 'Error Message: ' . $e->getMessage() . $br; // response timeout means your request has probably be received by JPUsh Server,please check that whether need to be pushed again. echo 'IsResponseTimeout: ' . $e->isResponseTimeout . $br; } echo $br . '-------------' . $br; // easy push with ios badge +1 // 以下演示推送给 Android, IOS 平台下Tag为tag1的用户的示例 try { $result = $client->push()->setPlatform(M\Platform('android', 'ios'))->setAudience(M\Audience(M\Tag(array('tag1'))))->setNotification(M\notification('Hi, JPush', M\android('Hi, Android', 'Message Title', 1, array("key1" => "value1", "key2" => "value2")), M\ios("Hi, IOS", "happy", "+1", true, array("key1" => "value1", "key2" => "value2"), "Ios8 Category")))->setMessage(M\message('Message Content', 'Message Title', 'Message Type', array("key1" => "value1", "key2" => "value2")))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail: ' . $br; echo 'Error Message: ' . $e->getMessage() . $br; // response timeout means your request has probably be received by JPUsh Server,please check that whether need to be pushed again. echo 'IsResponseTimeout: ' . $e->isResponseTimeout . $br; } echo $br . '-------------' . $br; // full push try { $result = $client->push()->setPlatform(M\platform('ios', 'android'))->setAudience(M\audience(M\tag(array('555', '666')), M\alias(array('555', '666'))))->setNotification(M\notification('Hi, JPush', M\android('Hi, android'), M\ios('Hi, ios', 'happy', 1, true, null, 'THE-CATEGORY')))->setMessage(M\message('msg content', null, null, array('key' => 'value')))->setOptions(M\options(123456, null, null, false, 0))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail: ' . $br; echo 'Error Message: ' . $e->getMessage() . $br; // response timeout means your request has probably be received by JPUsh Server,please check that whether need to be pushed again. echo 'IsResponseTimeout: ' . $e->isResponseTimeout . $br; } echo $br . '-------------' . $br; // fail push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification('Hi, JPush'))->setAudience(M\audience(array('no one')))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail: ' . $br; echo 'Error Message: ' . $e->getMessage() . $br; // response timeout means your request has probably be received by JPUsh Server,please check that whether need to be pushed again. echo 'IsResponseTimeout: ' . $e->isResponseTimeout . $br; } }
/** * 极光推送统计 * @param array $msg_ids 需要统计的消息id * @param int $app_type_id 应用id 默认为大厨商城app */ public function stats(array $msg_ids, $app_type_id = 1) { list($appkey, $secret) = $this->_get_appkey($app_type_id); if (empty($appkey) || empty($secret)) { echo 'empty appkey'; return; } $br = '<br/>'; $client = new JPushClient($appkey, $secret); try { $result = $client->report($msg_ids); foreach ($result->received_list as $received) { echo '---------' . $br; echo 'msg_id : ' . $received->msg_id . $br; echo 'android_received : ' . $received->android_received . $br; echo 'ios_apns_sent : ' . $received->ios_apns_sent . $br; } } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail.' . $br; echo 'message' . $e->getMessage() . $br; } }
<?php require_once '../../third_party/vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $app_key = '74a7874f76fa5eb4e6baa6b3'; $master_secret = 'd50c83278b63a7b004da7364'; $client = new JPushClient($app_key, $master_secret); try { $msg_ids = '2969371506'; $result = $client->report($msg_ids); foreach ($result->received_list as $received) { echo '---------' . $br; echo 'msg_id : ' . $received->msg_id . $br; echo 'android_received : ' . $received->android_received . $br; echo 'ios_apns_sent : ' . $received->ios_apns_sent . $br; } } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br; echo 'rateLimitReset : ' . $e->rateLimitReset . $br; } catch (APIConnectionException $e) { echo 'Push Fail.' . $br;
function testDeleteAlias() { $client = new JPushClient($this->appKey, $this->masterSecret); $result = $client->deleteAlias($this->ALIAS2); $this->assertTrue($result->isOk === true); }
public function testOptionsAndOverride() { $client = new JPushClient($this->appKey, $this->masterSecret); $response = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification($this->alert))->setOptions(M\options(12345, 60, null, true))->send(); $this->assertEquals(12345, $response->sendno); $this->assertTrue($response->isOk === true); $override_msg_id = (int) $response->msg_id; $client = new JPushClient($this->appKey, $this->masterSecret); $response = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification($this->alert))->setOptions(M\options(null, null, $override_msg_id))->send(); $this->assertTrue($response->isOk === true); }
<?php require_once 'vendor/autoload.php'; use JPush\Model as M; use JPush\JPushClient; use JPush\JPushLog; use Monolog\Logger; use Monolog\Handler\StreamHandler; use JPush\Exception\APIConnectionException; use JPush\Exception\APIRequestException; $br = '<br/>'; $spilt = ' - '; $app_key = 'dd1066407b044738b6479275'; $master_secret = '6b135be0037a5c1e693c3dfa'; JPushLog::setLogHandlers(array(new StreamHandler('jpush.log', Logger::DEBUG))); $client = new JPushClient($app_key, $master_secret); //easy push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\all)->setNotification(M\notification('Hi, JPush'))->printJSON()->send(); echo 'Push Success.' . $br; echo 'sendno : ' . $result->sendno . $br; echo 'msg_id : ' . $result->msg_id . $br; echo 'Response JSON : ' . $result->json . $br; } catch (APIRequestException $e) { echo 'Push Fail.' . $br; echo 'Http Code : ' . $e->httpCode . $br; echo 'code : ' . $e->code . $br; echo 'Error Message : ' . $e->message . $br; echo 'Response JSON : ' . $e->json . $br; echo 'rateLimitLimit : ' . $e->rateLimitLimit . $br; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . $br;
if (isset($uid) && isset($msg) && isset($role)) { $rs_arr = $d2b->select("user_main", ["channelid"], ["uid" => $uid]); $channelid = $rs_arr[0]['channelid']; switch ($role) { case 1: $client = new JPushClient($app_key_c, $master_secret_c); try { $result = $client->push()->setPlatform(M\platform('ios', 'android'))->setAudience(M\audience(M\registration_id(array($channelid))))->setNotification(M\notification($msg, M\android($msg), M\ios($msg, 'happy', 1, true, null, 'THE-CATEGORY')))->setMessage(M\message($msg, null, null, array('key' => 'value')))->setOptions(M\options(123456, null, null, false, 0))->send(); $return_arr = ["channelid" => $channelid]; include "../include/return_data.php"; } catch (APIRequestException $e) { echo 'code : ' . $e->code; } break; case 2: $client = new JPushClient($app_key_p, $master_secret_p); try { $result = $client->push()->setPlatform(M\platform('ios', 'android'))->setAudience(M\audience(M\registration_id(array($channelid))))->setNotification(M\notification($msg, M\android($msg), M\ios($msg, 'happy', 1, true, null, 'THE-CATEGORY')))->setMessage(M\message($msg, null, null, array('key' => 'value')))->setOptions(M\options(123456, null, null, false, 0))->send(); $return_arr = ["channelid" => $channelid]; include "../include/return_data.php"; } catch (APIRequestException $e) { echo 'code : ' . $e->code; } break; default: echo json_encode(0); break; } } else { echo json_encode(0); }
public function push() { if ($this->param['type'] === null || $this->param['ispushservice'] === null || $this->param['phone'] === null || $this->param['content'] === null || $this->param['shop_id'] === null) { return $this->returnResult($this->DATAERROR, '数据错误!'); } if (strlen($this->param['phone']) != 11) { return $this->returnResult($this->DATAERROR, '数据错误!'); } if ($this->param['phone'] == '') { return $this->returnResult($this->DATAERROR, '数据错误!'); } $userinfo = UserBase::findFirst("user_account = " . $this->param['phone']); if (!$userinfo) { return $this->returnResult($this->DATAERROR, '数据错误!'); } $user_id = $userinfo->user_id; $usermessage = new UserMessage(); $usermessage->user_id = $user_id; if ($this->param['ispushservice'] == 1) { $usermessage->is_read_b = 0; } else { $usermessage->is_read_b = 1; } $usermessage->message_content = $this->param['content']; $usermessage->push_type = $this->param['type']; $usermessage->message_state = 1; $usermessage->shop_id = $this->param['shop_id']; $usermessage->from_user_name = 1; $usermessage->from_user_cover = 1; $this->db->begin(); $message_status = $usermessage->save(); //添加数据到user_message if (!$message_status) { $this->db->rollback(); return $this->returnResult($this->MYSQLERROR, "数据库错误"); } /*推送至APP代码*/ $config = $this->di->get('appConfig')->jpush; $app_key = $config->app_key; $master_secret = $config->master_secret; JPushLog::setLogHandlers([new StreamHandler('jpush.log', Logger::DEBUG)]); $client = new JPushClient($app_key, $master_secret); //easy push try { $result = $client->push()->setPlatform(M\all)->setAudience(M\alias([$user_id]))->setNotification(M\notification($this->param['content']))->setOptions(M\options(null, null, null, true, null))->send(); if ($result->isOk === true) { $this->db->commit(); return $this->returnResult($this->SUCCESS, "推送成功!"); } else { $this->db->rollback(); return $this->returnResult($this->PUSHFAIL, "推送失败!"); } } catch (APIRequestException $e) { /* echo 'Push Fail.' . '<br>'; echo 'Http Code : ' . $e->httpCode . '<br>'; echo 'code : ' . $e->code . '<br>'; echo 'message : ' . $e->message . '<br>'; echo 'Response JSON : ' . $e->json . '<br>'; echo 'rateLimitLimit : ' . $e->rateLimitLimit . '<br>'; echo 'rateLimitRemaining : ' . $e->rateLimitRemaining . '<br>'; echo 'rateLimitReset : ' . $e->rateLimitReset . '<br>'; exit; */ $this->db->rollback(); return $this->returnResult($this->PUSHFAIL, "推送失败!"); } catch (APIConnectionException $e) { $this->db->rollback(); return $this->returnResult($this->PUSHFAIL, "推送失败!"); } /*the end*/ }