Telegram BOT 을 사용할때 그냥 간단하게 명령어 한줄로 사용 할 수는 없을까? 하는 사람들을 위해 포스팅 한다.

 

Telegram BOT 은 많은 API 들을 제공해주는데 그중 sendMessage API 는 가장 사용 하기 쉽다.

 

예제를 보자.

 

curl -k -d "chat_id=123456789" --data-urlencode "text=\"Test Message 보냅니다\"" https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage 

 

빨간색 글씨는 각각 chat_id 와 Token Key 이다.

 

주희 할 점은 --data-urlencode "text=  이 코드 다음인데 띄어쓰기 또는 한글이 포함되어 있다면

\" 로 시작해서 \" 로 끝내야 한다는것

즉 다음과 같이 메시지를 작성해야 한다.

 

--data-urlencode "text=\"Test Message 보냅니다\""

 

 

다음과 같이 제한적이지만 HTML 코드도 전송이 된다.

curl -k -d "chat_id=123456789" --data-urlencode "text=\"Test Message 보냅니다<a href='http://blog.acidpop.kr'>블로그</a>\"" -d "parse_mode=HTML" -d "disable_web_page_preview=true" https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage

 

여기까지가 일반적인 Text 를 보내는 방법이고

 

사진이나 문서파일을 전송 하려면 어떻게 해야 할까?

 

curl 의 form 옵션을 이용해서 전송 하면 된다.

 

사진을 보내는 방법은 다음과 같다.

 

curl -k -F chat_id=123456789 -F photo=@"/home/test.png" https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendPhoto

 

마찬가지로 Document 는 사진 보내는것과 매우 유사하다.

 

 

curl -k -F chat_id=123456789 -F document=@"/home/test.xlsx" https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendDocument

 

 


 

 

 

 각종 Telegram BOT API 는 다음 링크를 참고하여 옵션들을 조정해 주면 다양하게 사용 할 수 있다.

 

https://core.telegram.org/bots/api#available-methods

 

 

저작자 표시 비영리 변경 금지
신고

  • 김형년 2017.04.12 11:25 신고

    라즈베리파이3에서 opencv에서 촬영된사진을 갱신 될때마다 보내고싶습니다 이걸로 사용가능한강ㅅ

    1. BlogIcon Acidpop acidpop 2017.04.12 12:00 신고

      넵 사진 촬영 후에 해당 사진 파일의 경로만 변경해서 curl 실행 되도록 만드시면 됩니다

  • 김형년 2017.04.12 14:11 신고

    ㄴ 감사합니다 하나만 더 가르쳐 주시면 감사하겠습니다. 지금 올려 놓으신 라즈베리파이 텔레그램 만들기 라는 링크를 보고 만들고 있습니다.
    계속 구동을 시키려면 데몬을 이용해서 실행하고 소스 코드 짜서 어떤식으로 실행해야하는지 궁금합니다..

    1. BlogIcon Acidpop acidpop 2017.04.12 16:36 신고

      일단 질문 자체가 정확하지 않습니다.

      C 언어를 이용해서 opencv 를 사용하시나요?

      opencv 를 거의 안써봐서 잘 기억은 안나지만
      이미지 저장하는 코드가 있을것이고
      해당 이미지는 어디에 저장되는지도 알것이고

      그러면

      char szTelegram[2048] = "";

      sprintf(szTekegram, "curl -k -F chat_id=123456789 -F photo=@"%s" https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendPhoto", imagePath);

      system(szTelegram);

      이런식으로 구현 하시면 안되나요?

      굳이 telegram-cli 까지 띄워놓고 하실 필요 없어요


      어렵게 가지 마시고 쉽게 가세요

다른 카테고리의 글 목록

강좌/Telegram BOT 카테고리의 포스트 목록