zend-blog-3-backend

Форк
0
/
TelegramController.php 
57 строк · 1.3 Кб
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: morontt
5
 * Date: 13.09.17
6
 * Time: 22:07
7
 */
8

9
namespace App\Controller;
10

11
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
12
use Symfony\Component\HttpFoundation\Request;
13
use Symfony\Component\HttpFoundation\Response;
14
use Symfony\Component\Routing\Annotation\Route;
15
use Xelbot\Telegram\Robot;
16

17
class TelegramController extends AbstractController
18
{
19
    /**
20
     * @var string
21
     */
22
    private string $secretToken;
23

24
    /**
25
     * @var Robot
26
     */
27
    private Robot $telegramBot;
28

29
    /**
30
     * @param Robot $telegramBot
31
     * @param string $secretToken
32
     */
33
    public 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
     */
47
    public function webHookAction(Request $request, string $token): Response
48
    {
49
        if (!hash_equals(sha1($this->secretToken), sha1($token))) {
50
            return new Response("Get out!\n", 403);
51
        }
52

53
        $this->telegramBot->handle($request->request->all());
54

55
        return new Response("ok\n");
56
    }
57
}
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.