본문 바로가기
PHP/Composer

텔레그램 웹훅을 이용하여 특정 커맨드 만들기

by 2세1의 행복한 개발 2020. 4. 23.
반응형

안녕하세요

오늘은 텔레그램 웹훅을 이용하여 원하는 이벤트를 만들어보려고 합니다

우선 로봇 생성은 워낙 자료가 많기 때문에 생략하고 진행하겠습니다

SSL이 적용된 URL 있으시면 1번을 대체하실 수 있습니다

1. API Gateway 설정

웹훅은 기본적으로 POST로 페이지에 값을 넘겨줍니다

메서드를 생성한 뒤 

통합 유형을 HTTP로 설정한 후 엔드포인트를 제가 원하는곳으로 설정해주세요

생성된 URL

https://API-GATEWAY/dev/test

 

2. 웹훅 등록

https://api.telegram.org/bot토큰/setwebhook?url=https(URL)

URL접근으로 쉽게 웹훅을 등록하실 수 있습니다

이때 url은 ssl이 적용된 https만 등록이 가능합니다

저는 ssl이 없는 서버를 사용하여 대신 AWS api gateway를 이용하여 개발했습니다

정상적으로 등록되면 이렇게 페이지가 나옵니다

주의하실점은 훅을 등록하시면

https://api.telegram.org/bot토큰/getUpdates

사용이 불가능하니 참고해주세요

3. PHP페이지 생성 및 웹훅 동작 검증

제가 주로 사용하는 라라벨 루멘을 기준으로 하겠습니다.

/routes/web.php

우선 라우트를 등록하겠습니다

$router->post('/dev/telegram/bot/sendText', 'Dev\TelegramBotController@index');

/app/Http/Controllers/Dev/TelegramBotController.php

를 생성했습니다

public function index(request $request)
{
    $requestInput = $request->input();
    $this->logger->alert($requestInput);
}

해당 페이지에 request가 무엇이 들어오는지 궁금하여 psr/logger를 사용하여 로그를 남겨봤습니다

해당 log가 잘 남겨지면 무사히 동작을 한거죠

psr/logger는

https://devel-lee.tistory.com/7

 

PHP 로그를 쉽게 남겨보자!

안녕하세요. 오늘은 Composer를 이용하여 쉽게 로그를 남겨보려고 합니다. 이번에 사용할것은 psr/log 입니다. 다운로드가 무려 242,748,998건으로 많은 유저들이 사용하고 있습니다. 설치는 Composer를 통하여 설..

devel-lee.tistory.com

를 통하여 설치하실 수 있습니다

telegram 라이브러리는

https://packagist.org/packages/telegram-bot/api

 

telegram-bot/api - Packagist

README An extended native php wrapper for Telegram Bot API without requirements. Supports all methods and types of responses. Bots: An introduction for developers Bots are special Telegram accounts designed to handle messages automatically. Users can inter

packagist.org

composer를 이용하여 설치하였습니다.

 

로봇이 있는 채팅방에 명령어를 입력하면

text를 통하여 해당 값이 무엇인지 확인이 가능했습니다.

message - text를 읽어서 특정 명령어를 판단할 수 있습니다

으로 작성 뒤 해당 /test를 날려보면

 

 

정상적으로 실행이 가능했습니다

chat_id를 이용하시면 원하시는방에 바로바로 입력이 가능합니다.

 

 

이상 텔레그램 웹훅을 통하여 특정 커맨드를 만드는법을 알아봤습니다~

'PHP > Composer' 카테고리의 다른 글

PHP 로그를 쉽게 남겨보자!  (0) 2020.04.22
[PHP] 라라벨 루멘 DB문서 자동화  (1) 2020.03.19

댓글