Proyectos de Subversion LeadersLinked - Services

Rev

Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Log\LoggerInterface;
use Laminas\Mvc\I18n\Translator;
use LeadersLinked\Cache\CacheInterface;


class TestSendPushCommand extends Command
{
    /**
     *
     * @var \Laminas\Db\Adapter\AdapterInterface
     */
    private $adapter;
    
    /**
     *
     * @var \LeadersLinked\Cache\CacheInterface
     */
    private $cache;
    
    
    /**
     *
     * @var \Laminas\Log\LoggerInterface
     */
    private $logger;
    
    /**
     *
     * @var array
     */
    private $config;
    
    
    /**
     *
     * @var \Laminas\Mvc\I18n\Translator
     */
    private $translator;
    
    
    /**
     *
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
     * @param \LeadersLinked\Cache\CacheInterface $cache
     * @param \Laminas\Log\LoggerInterface
     * @param array $config
     * @param \Laminas\Mvc\I18n\Translator $translator
     */
    public function __construct($adapter, $cache, $logger, $config, $translator)
    {
        $this->adapter      = $adapter;
        $this->cache        = $cache;
        $this->logger       = $logger;
        $this->config       = $config;
        $this->translator   = $translator;
        
        parent::__construct();
    }

    
    protected function execute(InputInterface $input, OutputInterface $output) : int
    {
        $output->writeln('Inicio del proceso');
        
        
        $dirname = dirname(dirname(dirname(dirname(__DIR__))));
        $filename = $dirname  . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR .  'google' . DIRECTORY_SEPARATOR . 'push-leaderslinked' . DIRECTORY_SEPARATOR .  'leaderlinked-1553079536948-firebase-adminsdk-1aahc-eecc297707.json';
        
        putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $filename);

        $client= new \Google_Client();
        $client->useApplicationDefaultCredentials();
        $client->addScope('https://www.googleapis.com/auth/firebase.messaging');
        $client->fetchAccessTokenWithAssertion();
        $token = $client->getAccessToken();
        
        
        $accessToken    = $token['access_token'];
        $devicesToken    = [
            'eJmAgQ0uSBqMvK5kyknWzs:APA91bGeJyEerjZX3jX5Ntl8CfaynmTRuZ2h3TPs2MYlpSAuBiR8lUUdosGtc54ZYvtTutZqeL07l4uZZrpy9QRc8k6zIzch-I2Ug1oE0smpF8MtuV4EJYk',
           // 'fykf2Hx8QEiog4ZjiNvslh:APA91bFXE8zKW7yKdIzygEYYdyS9b6rCMI0ZKoJrs5JmA6GUhmHS0ccxCTqX3hjUThddSVR7GvCucogRUl7NLhEAjvs7Sg4sbBCr-PyyIk9g6gF2OhiwdYC8LmOSLVq18QtoBba6MWvs'
        ];
        
        $headers = [
            'Authorization: Bearer ' . $accessToken,
            'Content-Type: application/json'
        ];

        foreach( $devicesToken as $deviceToken)
        {
            $fields = [
                'message' => [
                    'token' => $deviceToken,
                    'notification' => [
                        'body' => 'Body de Prueba 2 ',
                        'title' => 'Titulo de Prueba 2',
                        //'url' => 'https://dev-spa.leaderslinked.com/post/ed807f52-b418-4fd4-ba70-068604540212',
                        //'vibrate' => 1,
                       // 'sound' => 1
                    ],
                    'data' => [
                        'url' => 'https://dev-spa.leaderslinked.com/post/ed807f52-b418-4fd4-ba70-068604540212',
                    ],
                 
                   
                ],    
            ];
            
     
            
            
            
            
            $ch = curl_init();
            curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/v1/projects/leaderlinked-1553079536948/messages:send' );
            curl_setopt( $ch,CURLOPT_POST, true );
            curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
            curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
            curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
            curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
            $result = curl_exec($ch );
            curl_close( $ch );
            
            
            print_r($result);
        }

        $output->writeln('Fin del proceso');
        
      
        
        return 0;
    }
    
    
    
}