Proyectos de Subversion LeadersLinked - Services

Rev

Rev 321 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
321 www 1
<?php
345 www 2
declare(strict_types = 1);
321 www 3
namespace LeadersLinked\Command;
4
 
5
use Symfony\Component\Console\Command\Command;
6
use Symfony\Component\Console\Input\InputInterface;
7
use Symfony\Component\Console\Output\OutputInterface;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use Laminas\Log\LoggerInterface;
10
use Laminas\Mvc\I18n\Translator;
11
use LeadersLinked\Cache\CacheInterface;
12
 
13
class TestSendPushCommand extends Command
14
{
345 www 15
 
321 www 16
    /**
17
     *
18
     * @var \Laminas\Db\Adapter\AdapterInterface
19
     */
20
    private $adapter;
345 www 21
 
321 www 22
    /**
23
     *
24
     * @var \LeadersLinked\Cache\CacheInterface
25
     */
26
    private $cache;
345 www 27
 
321 www 28
    /**
29
     *
30
     * @var \Laminas\Log\LoggerInterface
31
     */
32
    private $logger;
345 www 33
 
321 www 34
    /**
35
     *
36
     * @var array
37
     */
38
    private $config;
345 www 39
 
321 www 40
    /**
41
     *
42
     * @var \Laminas\Mvc\I18n\Translator
43
     */
44
    private $translator;
345 www 45
 
321 www 46
    /**
47
     *
48
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
49
     * @param \LeadersLinked\Cache\CacheInterface $cache
345 www 50
     * @param
51
     *            \Laminas\Log\LoggerInterface
321 www 52
     * @param array $config
53
     * @param \Laminas\Mvc\I18n\Translator $translator
54
     */
55
    public function __construct($adapter, $cache, $logger, $config, $translator)
56
    {
345 www 57
        $this->adapter = $adapter;
58
        $this->cache = $cache;
59
        $this->logger = $logger;
60
        $this->config = $config;
61
        $this->translator = $translator;
62
 
321 www 63
        parent::__construct();
64
    }
65
 
345 www 66
    protected function execute(InputInterface $input, OutputInterface $output): int
321 www 67
    {
68
        $output->writeln('Inicio del proceso');
345 www 69
 
321 www 70
        $dirname = dirname(dirname(dirname(dirname(__DIR__))));
345 www 71
        $filename = $dirname . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'google' . DIRECTORY_SEPARATOR . 'push-leaderslinked' . DIRECTORY_SEPARATOR . 'leaderlinked-1553079536948-firebase-adminsdk-1aahc-eecc297707.json';
72
 
321 www 73
        putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $filename);
74
 
345 www 75
        $client = new \Google_Client();
321 www 76
        $client->useApplicationDefaultCredentials();
77
        $client->addScope('https://www.googleapis.com/auth/firebase.messaging');
78
        $client->fetchAccessTokenWithAssertion();
79
        $token = $client->getAccessToken();
345 www 80
 
81
        $accessToken = $token['access_token'];
82
        $devicesToken = [
83
            'eJmAgQ0uSBqMvK5kyknWzs:APA91bGeJyEerjZX3jX5Ntl8CfaynmTRuZ2h3TPs2MYlpSAuBiR8lUUdosGtc54ZYvtTutZqeL07l4uZZrpy9QRc8k6zIzch-I2Ug1oE0smpF8MtuV4EJYk'
84
            // 'fykf2Hx8QEiog4ZjiNvslh:APA91bFXE8zKW7yKdIzygEYYdyS9b6rCMI0ZKoJrs5JmA6GUhmHS0ccxCTqX3hjUThddSVR7GvCucogRUl7NLhEAjvs7Sg4sbBCr-PyyIk9g6gF2OhiwdYC8LmOSLVq18QtoBba6MWvs'
321 www 85
        ];
345 www 86
 
321 www 87
        $headers = [
88
            'Authorization: Bearer ' . $accessToken,
89
            'Content-Type: application/json'
90
        ];
91
 
345 www 92
        foreach ($devicesToken as $deviceToken) {
321 www 93
            $fields = [
94
                'message' => [
95
                    'token' => $deviceToken,
96
                    'notification' => [
97
                        'body' => 'Body de Prueba 2 ',
345 www 98
                        'title' => 'Titulo de Prueba 2'
99
                        // 'url' => 'https://dev-spa.leaderslinked.com/post/ed807f52-b418-4fd4-ba70-068604540212',
100
                        // 'vibrate' => 1,
101
                        // 'sound' => 1
321 www 102
                    ],
103
                    'data' => [
345 www 104
                        'url' => 'https://dev-spa.leaderslinked.com/post/ed807f52-b418-4fd4-ba70-068604540212'
105
                    ]
106
                ]
321 www 107
            ];
345 www 108
 
321 www 109
            $ch = curl_init();
345 www 110
            curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/v1/projects/leaderlinked-1553079536948/messages:send');
111
            curl_setopt($ch, CURLOPT_POST, true);
112
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
113
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
114
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
115
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
116
            $result = curl_exec($ch);
117
            curl_close($ch);
118
 
321 www 119
            print_r($result);
120
        }
121
 
122
        $output->writeln('Fin del proceso');
345 www 123
 
321 www 124
        return 0;
125
    }
126
}