soominkim Study
article thumbnail
728x90

 

(1)에서 직접적으로 메시지를 보내는 것이 아닌 Apps Script를 이용해 보내는 방법을 확인했습니다. 보다 더 자세한 것은 Telegram API docs 참조하십시오.

 

Apps Scirpt를 통해 내가 봇에게 메시지를 보냈을 때 봇은 이를 업데이트할 수 있어야 합니다. Telegram API에 따르면 업데이를 받는 방법은 두 가지가 존재하며 하나는 getUpdates 메서드이고 하나는 웹 후크를 이용해 업데이트 할 수 있다고 합니다. 

 

getUpdates 메서드인 경우 긴 폴링을 사용하여 들어오는 경우 권장하며 실시간 답장을 원한다면 웹 후크를 이용해야 합니다. 많은 기능을 제공해주는 Google Sheets는 웹 앱을 제공하므로 저는 웹 후크를 이용해 실시간으로 답을 받도록 하겠습니다.  웹 앱에 대한 것은 Apps Script docs를 참조하십시오.

 

웹 앱을 사용하면 doGet(e) 또는 doPost(e) 함수가 포함되어 있어 이를 이용해 실시간으로 제가 보낸 메시지를 봇이 확인하고 응답할 수 있습니다. doGet(e)는 사용자가 앱을 방문하거나 프로그램이 앱에 HTTP GET 요청을 보내면 실행하게 합니다. 반대로 doPost(e)는 프로그램이 HTTP POST 요청을 보내면 실행하게 합니다.

https://script.google.com/.../exec?username=jsmith&age=21

위와 같은 GET 요청을 했을 경우 Apps Script에서는 다음과 같이 표시할 수 있습니다.

function doGet(e) {
  var params = JSON.stringify(e);
  return HtmlService.createHtmlOutput(params);
}

그리고 doGET(e)는 다음과 같은 출력을 반환합니다.

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

Docs에서 제공하는 웹 앱 방식을 확인했습니다. 그렇다면 이제 Telegram Webhook를 설정하는 방법을 알아보겠습니다.

 

1. /setWebhook?

URL을 지정하고 발신 Webhook을 통해 업데이트를 수신하려면 위 메서드를 사용할 수 있습니다.

https://api.telegram.org/bot<token>/setWebhook?url=<url>

웹 후크를 설정한 경우 기존 getUpdates를 사용하여 업데이트를 받을 수 없습니다.

Apps Script에서는 다음과 같이 만들겠습니다

function Set_webhook(url) {
  return UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/setWebhook?url' + url )
}

 

2. /deleteWebhook

설정했던 Webhook를 삭제하고 싶다면 deleteWebhook를 사용할 수 있습니다.

https://api.telegram.org/bot<token>/deleteWebhook

Apps Script에서는 다음과 같이 만들겠습니다.

function Remove_webhook() {
  return UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/deleteWebhook )
}

 

3. /getWebhookInfo

현재 등록된 Webhook 상태를 가져옵니다.

https://api.telegram.org/bot<token>/getWebhookInfo

Apps Script에서는 다음과 같이 만들겠습니다.

function Get_webhookInfo() {
  return UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/getWebwookInfo )
}

 

메시지 보내기Telegram bot (1) 에서 확인할 수 있습니다.

 

[Apps Script] Telegram bot (1)

Google Sheets는 Apps Script를 제공합니다. 그리고 Apps Script는 많은 기능을 제공합니다. 이를 이용해 Telegram의 간단한 봇을 만들 것입니다. 해당 예시는 Telegram 봇을 만들었다는 가정하에 진행됩니다. Te

soominkim.tistory.com

 

728x90

'Toy Proejct > GoogleSheet' 카테고리의 다른 글

[Apps Script] Telegram bot (5)  (0) 2023.02.24
[Apps Script] Telegram bot (4)  (0) 2023.02.22
[Apps Script] Telegram bot (3)  (0) 2023.02.22
[Apps Script] Telegram bot (1)  (0) 2023.02.18
profile

soominkim Study

@soominkim

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그