public function testSetMessageIsReturnedInGetData() { $msg = new AndroidMessage(); $message = 'Test message'; $msg->setMessage($message); $this->assertEquals(array('message' => $message), $msg->getData()); $msg->setData(array('id' => 10)); $this->assertEquals(array('id' => 10, 'message' => $message), $msg->getData()); $msg->setData(array('message' => 'Other message')); $this->assertEquals(array('message' => 'Other message'), $msg->getData()); }
/** * Funcion que envia un mensaje con el servicio GCM de Google * @param $mes * @param $to */ private function sendGCMessage($mes, $to) { $message = new AndroidMessage(); $message->setMessage($mes['text']); $message->setData($mes); $message->setDeviceIdentifier($to); $message->setGCM(true); $logger = $this->_container->get('logger'); $logger->emerg(implode(',', $message->getData())); try { $this->_container->get('rms_push_notifications')->send($message); } catch (InvalidMessageTypeException $e) { throw $e; } }
protected function execute(InputInterface $input, OutputInterface $output) { $datos = $this->getContainer()->get('manager.rios')->getDatosPrefectura(); if ($datos) { $em = $this->getContainer()->get('doctrine')->getManager(); $output->writeln('Datos de Prefectura importados Correctamente'); $message = new AndroidMessage(); $aSubscribers = $em->getRepository('AppBundle:Subscriptor')->findAll(); foreach ($aSubscribers as $aSubscriber) { $message->addGCMIdentifier($aSubscriber->getDeviceId()); } $message->setData(array('title' => 'SiMOR')); $message->setMessage('Hemos actualizados nuestros datos. Entra a mirarlos'); $message->setGCM(true); $this->getContainer()->get('rms_push_notifications')->send($message); } else { $output->writeln('Ocurrió un error al procesar Datos de Prefectura'); } }
public function sendPushNotificationAction(Request $request) { $em = $this->get('doctrine')->getManager(); $error = ''; $valid = false; $formBuilder = $this->createFormBuilder(); $formBuilder->add('message', 'textarea', array('attr' => array('maxlength' => 64))); $form = $formBuilder->getForm(); if ($request->getMethod() == 'POST') { $form->bind($request); if ($form->isValid()) { try { $pushService = $this->container->get('keosu.plugin.push.notification.service'); $devices = $em->getRepository('KeosuGadgetPushNotificationBundle:Devices')->findAll(); $androidMessage = new AndroidMessage(); $androidMessage->setGCM(true); $androidMessage->setMessage($form['message']->getData()); $appleMessage = new AppleMessage(); $appleMessage->setMessage($form['message']->getData()); $appleMessage->setAPSBadge(1); $appleMessage->setAPSSound('default'); foreach ($devices as $device) { if ($device->getType() === Devices::TYPE_APPLE) { $appleMessage->setDeviceIdentifier($device->getToken()); $pushService->send($appleMessage); } else { if ($device->getType() === Devices::TYPE_ANDROID) { $androidMessage->addGCMIdentifier($device->getToken()); } } } $pushService->send($androidMessage); $valid = true; } catch (\Exception $e) { $error = $e->getMessage(); } } } return $this->render('KeosuGadgetPushNotificationBundle:Default:index.html.twig', array('form' => $form->createView(), 'error' => $error, 'valid' => $valid)); }
/** * Creates a new Tip entity. * */ public function createAction(Request $request) { $entity = new Tip(); $form = $this->createCreateForm($entity); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush(); $this->get('session')->getFlashBag()->add('success', 'Tip creado correctamente.'); $message = new AndroidMessage(); $aSubscribers = $em->getRepository('AppBundle:Subscriptor')->findAll(); foreach ($aSubscribers as $aSubscriber) { $message->addGCMIdentifier($aSubscriber->getDeviceId()); } $message->setData(array('title' => 'SiMOR')); $message->setMessage($entity->getDescripcion()); $message->setGCM(true); $this->container->get('rms_push_notifications')->send($message); return $this->redirect($this->generateUrl('tips_show', array('id' => $entity->getId()))); } return $this->render('AppBundle:Tip:new.html.twig', array('entity' => $entity, 'form' => $form->createView())); }