중복 내용이라 수정하였습니다.

중복 내용이라 수정하였습니다.


This page is synchronized from the post: ‘중복 내용이라 수정하였습니다.’

[kr-dev] 최신글 알림 서비스 #2 (Telegram Bot 소개)

안녕하세요.

저는 최근 호기심이 생겨 최신글 알림 서비스를 개발하고 있습니다.

목적은 특정 태그, 특정 유저의 최신 글이 작성 되었을 때,
알림이 오도록 하는 것 입니다.

첫번째, 카카오톡으로 알림 서비스를 받으면 좋았으나 유료 서비스라 패스하였습니다.

두번째, 직접 어플을 만들자니 배보다 배꼽이 더 큰 상황이라..


해결책은 Telegram을 활용한 알림 서비스


telegram bot에 대한 이미지 검색결과

Telegram은 공식적으로 python-telgegram-bot 관련 라이브러리를 제공하고 있으며,

이를 이용해서 쉽게 알림 서비스를 만들 수 있을 것입니다.

Telegram의 장점은 아래와 같습니다.


  • 무료다.

  • API가 제공된다.

  • 카카오 플러스 친구 같은 것을 만들 수 있다.

  • 스팀잇 뿐만 아니라 알림을 받고 싶은 서비스에 활용할 수 있다.


  • ex) 추후 제가 개발하고 싶은 홈서비스 로봇에도 사용할 수 있을것으로 기대합니다.

  • 집에 불을 키고 나왔거나 집에 손님이 방문했을 때, 그것을 인식하고 Telegram을 통해서 알림을 받는다던가!




서론이 길었지만.. Telegram Great!

Telegram 설치 및 활용 과정


순서대로 진행하겠습니다.

  1. Bot Father에게 Bot을 생성해달라고 요청해야합니다.

Bot은 아래 설명한 것과 같습니다.


  • 사용자로부터 무언가 입력을 받거나 사용자에게 알림을 보내기 위해서는 봇이라는게 필요합니다.

  • 쉽게 설명하자면, 우리가 만드는 것이 카카오 플러스 친구입니다.

  • 봇 파더에게 생성 요청 - 이 글이 전반적으로 설명을 참 잘했습니다.


Bot Father로부터 Bot을 생성했다면 반은 끝났습니다.


  1. python-telegram-bot 라이브러리 설치

sudo pip install python-telegram-bot만 하면 끝!

백종원 참 쉽죠에 대한 이미지 검색결과

  1. 사용자에게 메시지 보내기

아래 코드를 보면 Bot father에게 받은 telegramKey를 이용해서 Bot 객체를 만듭니다.

self.telegramBot = telegram.Bot(token=telegramKey)

그 다음에 메시지를 보내고 싶을 때, sendMessage함수를 사용하면 됩니다.

예를 들어, 새로운 글이 감지 되었을 때, sendMessage를 보내면 되는겁니다!

  1. 사용자의 입력에 따른 피드백

이제 사용자로부터 입력을 받고 그에 따른 동작을 해야할 때 사용하는 함수인데요

간단히 설명드리면 Handler와 Callback method, 그리고 Handler를 관리하는 dispatcher가 있습니다.


  • Handler는 특정 Command나 메시지가 왔을 때, 특정 함수를 실행하도록 설정합니다.


41번째 줄로 설명하면 ‘start’라는 신호가 오면 start함수를 실행하라는 의미입니다.


  • Callback method는 이 때 실행되는 start 함수를 말합니다.

  • dispatcher는 여러 개의 handler를 관리하는 애를 말합니다.



결론


결론은 위에 4단계를 쭉 따라오면 원하는 Telegram 서비스를 만들 수 있다고 생각합니다.

코드는 아래와 같이 공개를 하였고요! 참고하세요 ㅎㅎ

https://github.com/passionbull/steemit-alarm-posting


제가 만든 최신글 알림 서비스는 현재 위의 기능들을 활용해서 아래와 같이 동작합니다.

현재 DB랑 연결하는 부분을 안만들어서 개인용입니다..

이제 해야할 부분은 사용자들이 원하는 태그 및 특정 유저를 선택하면 그것을 DB에 저장하고

서비스에서 DB를 읽어와 최신글 검출 및 메시지 발송을 해야합니다.

생각되는 문제는 저 혼자 쓰는데는 문제가 없으나,

사람들이 많아질 경우 제 서버 (오드로이드-XU4)가 버틸 수 있을지 모르겠네요 ㅜㅜ

궁금한 것이 있으면 물어보세요!

제안, 조언 등 언제든 환영입니다.

글이 많이 긴데 읽어주셔서 감사합니다!


Reference

기존에 있는 스팀잇 Telegram 서비스를 찾아봤는데요.


  • @clayop



  • @ludorum



  • @clayop, @ludorum, 외국 개발자님이 개발한 것도 있었는데 기억이 안납니다.

    clayop님의 noteefi가 제가 목표하던 알림 서비스더군요.
    Telegram 서비스를 운영하고 있지는 않으신 것 같습니다.

    ludorum님의 챗봇은 언급됐을 때, 알림이 오는 서비스입니다.


    기존 서비스가 다시 가동된다면 제 서비스는 필요없을 수 있으나,

    처음으로 스팀잇 라이브러리도 써보고, Telegram 봇도 개발해보고

    많이 공부가 되었습니다.


    This page is synchronized from the post: ‘[kr-dev] 최신글 알림 서비스 #2 (Telegram Bot 소개)’

    베르나르 베르베르의 잠을 읽고 나서

    안녕하세요.

    제가 베르나르 베르베르 소설을 좋아해서 많이 읽었는데

    베르나르 베르베르 소설들은 내가 모험을 하는 듯한 기분을 느끼게 해주고 상상력을 자극하는 것 같아요.

    특히 좋아하는 소설들은 뇌랑 아버지들의 아버지인데
    스토리가 흡입력이 있고 추리소설같으면서도
    행복이란 무엇일까
    나는 어디서 온것일까 나의 조상은? 등 철학적인 문제도 생각해볼 수 있게 하는 재밌는 소설이에요

    이번엔 잠을 읽었어요.
    image.png
    내용을 간단히 말해드리면

    자크라는 주인공이 있습니다.

    자크는 프랑스에서 수면을 전공한 의대생입니다.

    어머니에게 꿈을 잘꾸는 방법을 배웠고
    주변에서.. 잠 때문에 죽거나 괴로워하는 사람들을 보고
    꿈을 연구하기 시작했습니다.

    그러다가 20년후의 자신이 꿈에서 나타나

    자신을 도와주기 시작하며 펼쳐지는 모험에 대한 이야기입니다.

    읽으면서 느낌점은

    1. 프랑스가 수면제 소비 1위 국가이구나
      나는 잠을 잘자고 수면제 안먹는거에 감사해야겠다 생각했습니다.

    2. 자크의 엄마가 세노이 족을 돕기 위해 무인도를 사고
      자크가 그 무인도에 호텔과 꿈 훈련 센터를 세운 내용이 있었습니다.
      나도 나중에 무인도를 사서 거기서 재택근무를 하고 싶다라는 생각이 들었습니다.

    3. 다음부터는 읽으면서 기록을 해야 좀 더 오래 기억할 수 있을것 같네요.. 파피용을 다시 읽고 독후감을 써봐야겠어요!

    읽어주셔서 감사합니다.


    This page is synchronized from the post: ‘베르나르 베르베르의 잠을 읽고 나서’

    7 DAY BLACK & WHITE PHOTO CHALLENGE: Day 1

    image.png


    The rules are here below :
    Take 7 black & white photos that represent an aspect of your life
    Present one image every day for seven days
    No people
    No explanation
    Nominate someone every day. Although anyone can join in
    Use the tag: #sevendaybnwchallenge as one of your five tags

    규칙은 다음과 같습니다 :
    당신의 인생의 한 단면을 나타내는 흑백 이미지 7 개
    매일 7 일동안 하나의 이미지를 게시하십시오.
    인물은 없이 게시해주세요.
    설명도 없이요.
    매일 다른사람을 지명하십시오.
    누구나 참여할 수는 있습니다.

    #sevendaybnwchallenge를 다섯 개의 태그 중 하나로 사용하십시오.


    Now it’s my turn to nominate another Steemian to keep this moving forward.
    2018년 멋진 목표를 세우신 @k3g3m 님을 태그합니다.


    This page is synchronized from the post: ‘7 DAY BLACK & WHITE PHOTO CHALLENGE: Day 1’

    스팀이지 워드프레스 플러그인 적용 후기

    안녕하세요!
    워드프레스 플러그인을
    제 홈페이지에 적용해봤습니다!
    짜잔! 아래 링크는 제 홈페이지입니다.
    http://hyejun.oa.to

    image.png

    스팀커넥트2 앱을 생성하는 부분은 생략했는데요.
    생략하고 나머지를 적용하는데는 5분도 안걸렸습니다.
    아주 쉬웠습니다.

    플러그인 설치를 한 후,
    아래와 같이
    [steemplugin tag=”kr-dev” limit=”10”] 만 작성을 하니
    완료되었습니다.
    참 쉽죠잉?

    image.png

    스팀커넥트2 앱을 생성하는 부분은
    몇 가지 궁금한 사항에 대해 @morning님에게 물어보고 진행해야 될 것 같아요.

    1. 스팀 커넥트2 앱을 연결하면
      보팅이나 댓글을 달 수 있는건가?

    2. wordpress에서 글을 작성한 것을 바로 steem에도 업데이트 할 수 있는가?
    궁금합니다.

    건의사항
    만약 2번이 안된다면 아래 스팀-워드프레스 플러그인이 있는데요.
    https://wordpress.org/plugins/wp-steem

    이 플러그인은 wordpress에서 포스팅하면 포스팅한 글을 steem으로 업데이트 해주는 플러그인입니다.
    현재 제가 적용해보려고 노력했으나 오류가 나서 써보지는 못했고, 코드를 보며 고민중이였습니다.

    이 기능도 적용하면 steemeasy는 전세계적으로 사용될 것으로 생각됩니다. ㅋㅋ!


    This page is synchronized from the post: ‘스팀이지 워드프레스 플러그인 적용 후기’

    [kr-dev] Steem-python을 활용하기 위한 python3.6 설치 (ubuntu)

    안녕하세요.
    오늘은 python3.6을 설치하고 활용하는 방법을 소개하려고 합니다.

    steem API를 접근 할 수 있게 해주는 steem-python이라는 라이브러리가 있는데요.
    이 라이브러리는 3.6 이상에서만 실행된다고 합니다.
    그래서 python3.6을 설치하고 python3.6에서 steem-python 라이브러리를 활용해보겠습니다.

    보통 ubuntu는 python 2와 3.5 version이 설치가 되어있는데요.
    여기서 3.6까지 설치를 할 경우 중복이 됩니다.
    해결책으로는 두 가지를 생각해봤는데 첫번째 방법을 소개하겠습니다.
    첫째, 명시적으로 호출한다. 입니다.
    둘째, Docker를 만든다.
    혹은 이미 다른사람이 python3.6을 설치해논 Docker을 쓴다.
    이것은 좀 조사를 해봐야해서 패스하겠습니다.

    먼저 python3.6을 설치해봅시다.

    #python 설치
    sudo add-apt-repository ppa:jonathonf/python-3.6
    sudo apt-get update
    sudo apt-get install openssl
    sudo apt-get install libssl-dev
    sudo apt-get install python3.6
    sudo apt-get install python3.6-dev

    #python pip설치
    wget https://bootstrap.pypa.io/get-pip.py

    sudo python3.6 get-pip.py

    python3.6을 실행해서 아래와 같은 이미지가 나오면 잘 설치한 것입니다.

    image.png

    이제 steem-python을 실행시켜봅시다.
    sudo python3.6 -m pip install -U steem

    설치가 다됐다면 간단히 활용을 해봅시다.
    import가 된다면 steem-python도 잘 설치된 것입니다.
    축하합니다!
    image.png

    이렇게 python3.6을 설치를 해보고 steem-python도 간단히 활용해봤는데요!
    저는 이 steem-python을 이용해서
    특정 유저나 특정 태그의 최신글 알리미 봇을 개발중입니다.

    아마 일주일안에 완성될 듯합니다.

    궁금하시다면 아래 링크를 누르시면 됩니다.
    아래 글은 새로운 글이 업데이트 될 경우, 텍스트를 출력하는 것에 대해 설명했습니다.
    현재는 텔레그램 봇을 개발하고 있고, 텔레그램과 연동해서 알림 메시지를 보낼 예정입니다.
    https://busy.org/kr-dev/@jacobyu/1-c1ac3fbc6bfc4

    현재 테스트 중에 있으며, kr-dev의 최신글들이 작성되면 텔래그램을 통해 메시지를 보내는 것까지 개발하였습니다.
    아래처럼 노티피케이션에 알림 메시지가 뜹니다!

    image.png

    image.png

    지속적으로 관련 포스팅을 할테니 관심 많이 가져주시고
    배포하면 많이 활용해주세요!
    감사합니다.


    This page is synchronized from the post: ‘[kr-dev] Steem-python을 활용하기 위한 python3.6 설치 (ubuntu)’

    Your browser is out-of-date!

    Update your browser to view this website correctly. Update my browser now

    ×