コード例 #1
0
ファイル: GCMHelper.php プロジェクト: sopinet/GCMBundle
 /**
  * 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;
     }
 }
コード例 #2
0
 /**
  * Returns a message class based on the supplied os
  *
  * @param  string                    $service The name of the service to return a message for
  * @throws \InvalidArgumentException
  * @return MessageInterface
  */
 protected function getMessageClass($service)
 {
     switch ($service) {
         case "ios":
             return new PushMessage\iOSMessage();
         case "c2dm":
             return new PushMessage\AndroidMessage();
         case "gcm":
             $message = new PushMessage\AndroidMessage();
             $message->setGCM(true);
             return $message;
         case "blackberry":
             return new PushMessage\BlackberryMessage();
         case "mac":
             return new PushMessage\MacMessage();
         case "windowsphone":
             return new PushMessage\WindowsphoneMessage();
         default:
             throw new \InvalidArgumentException("Service '{$service}' not supported presently");
     }
 }
コード例 #3
0
ファイル: DefaultController.php プロジェクト: predever/keosu
 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));
 }
コード例 #4
0
 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());
 }
コード例 #5
0
 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');
     }
 }
コード例 #6
0
 /**
  * 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()));
 }