zend-blog-3-backend
57 строк · 1.3 Кб
1<?php
2/**
3* Created by PhpStorm.
4* User: morontt
5* Date: 13.09.17
6* Time: 22:07
7*/
8
9namespace App\Controller;
10
11use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
12use Symfony\Component\HttpFoundation\Request;
13use Symfony\Component\HttpFoundation\Response;
14use Symfony\Component\Routing\Annotation\Route;
15use Xelbot\Telegram\Robot;
16
17class TelegramController extends AbstractController
18{
19/**
20* @var string
21*/
22private string $secretToken;
23
24/**
25* @var Robot
26*/
27private Robot $telegramBot;
28
29/**
30* @param Robot $telegramBot
31* @param string $secretToken
32*/
33public function __construct(Robot $telegramBot, string $secretToken)
34{
35$this->telegramBot = $telegramBot;
36$this->secretToken = $secretToken;
37}
38
39/**
40* @Route("/telegram/{token}", methods={"POST"})
41*
42* @param Request $request
43* @param string $token
44*
45* @return Response
46*/
47public function webHookAction(Request $request, string $token): Response
48{
49if (!hash_equals(sha1($this->secretToken), sha1($token))) {
50return new Response("Get out!\n", 403);
51}
52
53$this->telegramBot->handle($request->request->all());
54
55return new Response("ok\n");
56}
57}
58