Beispiel #1
0
 public static function sendNotification($flag, $valueArray)
 {
     $api_key = "AIzaSyBH2OD9dUrh9yoYSowf_Fi5b2619AnJsbs";
     $regIdArray = [];
     $message = [];
     $url = "https://android.googleapis.com/gcm/send";
     switch ($flag) {
         case 'TR':
             $tracker_name = $valueArray[0];
             $track_id = $valueArray[1];
             $username = TrackId::where('track_id', '=', $track_id)->first();
             $registrationIDs = RegisteredDevice::where('username', '=', $tracker_name)->get();
             $message = array("flag" => "TR", "user" => $username->username);
             foreach ($registrationIDs as $regId) {
                 array_push($regIdArray, $regId->reg_id);
             }
             break;
         case 'TJ':
             $lat = $valueArray[0];
             $lng = $valueArray[1];
             $address = self::getaddress($lat, $lng);
             $ctime = $valueArray[2];
             $registrationIDs = RegisteredDevice::all(array('reg_id'));
             $message = array("flag" => 'TJ', "lat" => $lat, "lng" => $lng, "address" => $address, "ctime" => $ctime);
             foreach ($registrationIDs as $regId) {
                 array_push($regIdArray, $regId->reg_id);
             }
             break;
         case 'ST':
             $tracker_name = $valueArray[0];
             $track_id = $valueArray[1];
             $registrationIDs = RegisteredDevice::where('username', '=', $tracker_name)->get();
             $message = array("flag" => "ST", "user" => $track_id);
             foreach ($registrationIDs as $regId) {
                 array_push($regIdArray, $regId->reg_id);
             }
             break;
     }
     print_r($regIdArray);
     print_r($message);
     $fields = array('registration_ids' => $regIdArray, 'data' => array("message" => $message));
     $headers = array('Authorization: key=' . $api_key, 'Content-Type: application/json');
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_POST, true);
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
     $result = curl_exec($ch);
     return $result;
     curl_close($ch);
 }
 public function stop()
 {
     $track_id = Request::get('trackid');
     $username = TrackId::where('track_id', $track_id)->first();
     $trackers = TrackAssign::where('username', $username->username)->get(array('tracker_id'));
     foreach ($trackers as $tracker) {
         $values = array($tracker->tracker_id, $username->username);
         RestApi::sendNotification('ST', $values);
     }
     $username->status = 0;
     $username->save();
     $query = "INSERT INTO track_user_backup (track_id, latitude, longitude, created_at, updated_at) SELECT track_id, latitude, longitude, created_at, updated_at FROM track_user WHERE track_id = '{$track_id}'";
     DB::insert(DB::raw($query));
     TrackUser::where('track_id', $track_id)->delete();
 }