Python이나 JavaScript를 사용하여 Telegram에 이벤트 및 로그 보내기
5970 단어 pythonapijavascripttelegram
내가 보기에 텔레그램은 가장 좋은 (최고가 아니면) 채팅 로봇 API 중 하나를 가지고 있다.그들이 창조한 것은 매우 사용하기 쉽지만, 그것의 기능은 오히려 믿기 어렵다.여러 해 동안 나는 그것으로 수십 개의 작은 프로젝트를 해 왔다.내가 그들의 API에 대한 두드러진 사용 사례는 내 프로그램과 프로젝트에서 자신에게 이벤트와 로그를 보내는 것이다.
이 예를 고려해 보자.수백 개 혹은 수천 개의 웹 페이지나 다른 유사한 장기 운행 작업에 대한 새로운 프로젝트를 개발하고 있습니다.너는 이 스크립트를 가상 기기나 기계에 배치해서 하루 이틀 동안 실행할 수 있다.하지만, 당신은 보통 어떻게 진도를 검사합니까?ssh를 사용하여 VM에 연결하여 정확한 tmux 세션을 찾고 로그를 읽으시겠습니까?만약 당신이 집을 떠나고 싶어서 컴퓨터를 사용할 수 없다면 어떻게 합니까?응, 이것이 바로 내가 생각한 상황 중의 하나야..."응, 만약 내가 전보로 원격 출력을 할 수 있다면내 말은 API는 아주, 아주 사용하기 쉽다. 내가 해야 할 일은 그들의 단점에 HTTP 요청을 하는 것이다. 그래서 왜 하지 않겠는가?
이것은 단지 내가 사건을 편리하게 전달할 수 있는 몇 십 개의 예 중 하나일 뿐이다. 그 이후로 나는 많은 다른 프로젝트에서 그것을 사용하여 자신의 사용자 행위, 제품 판매, 심지어 주가를 갱신했다.그래서 이 블로그에서 나는 첫 번째 채팅 로봇을 어떻게 설정하고 파이톤이나 자바스크립트를 통해 자신에게 이벤트를 보내는 방법을 소개할 것이다.
전보 채팅 로봇을 등록하다.
자, 첫 번째 단계는 전보로 메시지@botfather를 보내고 첫 번째 채팅 로봇을 만드는 것입니다!아래 화면 캡처에서 보듯이 이 과정은 매우 간단합니다.
API 태그를 복사하여 환경 변수에 추가합니다.물론, 이 과정을 건너뛰고 코드에 직접 추가할 수 있습니다.또한, 이 지폐가 개인 지폐임을 확보하세요!이 글을 다 쓴 후에 나는 나의 것을 취소할 것이다.
export BOT_TOKEN=2104030722:AAGdY_FeAFqvriecqv3lhissc-uG4t0arL4
당신의 전보를 찾아서 채팅 Id
알겠습니다. 몇몇 코드로 우리의 손을 더럽히기 전에, 우리는 아직 한 걸음 더 해야 합니다.고맙습니다. 이것은 매우 간단합니다. 우리는 전보에서 우리의 채팅 id를 찾아야 합니다. 여러 가지 방법으로 그것을 찾을 수 있습니다.나는 채팅 로봇 API를 사용하여 나의 채팅 ID를 찾을 것이다.
따라서 우리가 방금 만든 채팅 로봇을 켜서 메시지를 보내기;그것은 아마도 어떤 것일 것이다.그리고 브라우저나 우체부를 사용해서 API 영패로 다음 URL에 get 요청을 하면 채팅 id를 알려 줍니다.
// template
[https://api.telegram.org/bot](https://api.telegram.org/bot)<BOT_TOKEN>/getUpdates
// how mine looks like with my bot token
[https://api.telegram.org/bot2104030722:AAGdY_FeAFqvriecqv3lhissc-uG4t0arL4/getUpdates](https://api.telegram.org/bot2104030722:AAGdY_FeAFqvriecqv3lhissc-uG4t0arL4/getUpdates)
화면 캡처와 같이 다음 경로 결과 []를 통해 채팅 id를 볼 수 있습니다.메모수다를 떨다.id. 환경 변수에 복사하고 다시 추가하거나 코드에 직접 붙입니다.
export CHAT_ID=<MY_CHAT_ID>
좋아, 이것이 바로 우리가 전보에 대한 기본적인 요구이다.코드를 좀 쓰겠습니다.이 글은 Python과 JavaScript의 예를 제공할 것입니다. 따라서 원하는 대로 선택하십시오.Python을 통한 이벤트 게시
우선, 환경 변수에 접근하여 그것들을 변수에 분배합시다
import os
BOT_TOKEN = os.environ.get('BOT_TOKEN')
CHAT_ID = os.environ.get('CHAT_ID')
HTTP 요청을 처리하려면 requests 패키지를 사용하겠습니다.그러면 다음 명령을 실행하여 PyPi를 통해 설치합니다.pip install requests
경탄할 만한!이제 우리는 사건을 전보로 보내는 방법을 정의할 것이다.send message라고 하며 메시지 문자열을 받아들여야 합니다.def send_message(msg):
그리고 텔레그램의 메시지 전송점을 추가하고, 우리bot 영패를 통해 그것을 채울 것입니다.url = f”https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
이제 텔레그램에 전송할 URL 매개 변수를 정의합니다.채팅 ID와 문자가 필요합니다. 지금, 우리는 이미 준비가 되었을 것입니다.params = { “chat_id”: CHAT_ID, “text”: msg }
마지막으로 요청을 가져오고 GET 요청을 보낸 다음 URL 매개 변수를 전달합니다.requests.get(url, params=params)
이것들을 함께 놓아라. 우리의 방법은 마땅히 아래와 같아야 한다.import requests
def send_message(msg):
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
params = { "chat_id": CHAT_ID, "text": msg }
requests.get(url, params=params)
지금 우리는 전보를 통해 자신에게 어떤 사건도 보낼 수 있다.파충류의 일을 기억하십니까?우리가 주기적인 진도를 보내고 싶다고 상상해 보세요.우리는 이렇게 할 수 있다.send_message(“🔥 Crawling progress: 56% done”)
일단 우리가 코드를 운행한다면, 만약 모든 것이 정상이라면, 우리는 반드시 이런 물건을 보아야 한다.이게 얼마나 멋있어요?JavaScript를 통한 이벤트 게시
좋습니다. 자바스크립트에서 같은 과정을 반복합시다.우선 환경 변수에 접근하여 변수로 설정합니다.
const BOT_TOKEN = process.env.BOT_TOKEN
const CHAT_ID = process.env.CHAT_ID
다음에 HTTP 요청을 처리하려면 Axios 패키지를 사용하겠습니다.다음 명령을 실행하여 NPM을 통해 설치할 수 있습니다.npm i axios
이제 sendMessage 방법을 정의해 보겠습니다.문자열 메시지를 매개 변수로 사용해야 합니다.그런 다음 엔드포인트 URL을 추가하고 BOT 토큰으로 채워 넣습니다.그런 다음 텔레그램에 필요한 URL 매개 변수를 정의합니다.채팅방 id와 텍스트.마지막으로 Axios를 통해 get 요청을 보내고 매개 변수를 전달할 수 있습니다.import axios from 'axios';
const BOT_TOKEN = process.env.BOT_TOKEN
const CHAT_ID = process.env.CHAT_ID
async function sendMessage(message) {
const url = `https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`
const params = { chat_id: CHAT_ID, text: message }
await axios.get(url, { params: params })
}
거의 이렇다!우리도 이거 한번 해보자.await sendMessage("💰 New user signed up")
거의 이렇다!이 두 선을 추가함으로써 우리는 또 다른 초강대국을 얻었다. 우리는 그것으로 거의 모든 일을 할 수 있다.
Reference
이 문제에 관하여(Python이나 JavaScript를 사용하여 Telegram에 이벤트 및 로그 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sh4yy/use-python-or-javascript-to-send-your-events-and-logs-to-telegram-via-their-chatbot-api-3243텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)