-
[Project] KakaoTalk 학식봇
카카오톡 자동응답 API로 학생식당 메뉴를 알려주는 어플리케이션을 개발했습니다. Language/Framework : Python/Django Library : BeautifulSoup DB : MySQL, Django ORM Server : nCloud, Ubuntu 14.04.4 LTS 기타 : Git, Vim, PyCharm, Crontab 소스코드 카카오톡 자동응답 API를 이용해 파싱되어 DB에 저장된 학식 메뉴를 알려주는 어플리케이션 입니다. Python BeutifulSoup를 이용해 학생식당 메뉴를 파싱하고, DB에 값을 저장한 뒤 URI를 통해 요청이 오면 DB에 저장된 값을 Return하도록 제작했습니다. 제작과정을 상세하게 기록한 포스팅을 작성했습니다.
-
[Project] KakaoTalk Cafeteria Menu Bot - English
I developed an application that tells the menu of school cafeteria with the auto-answer API of KakaoTalk(messanger application like Line). Language/Framework : Python/Django Library : BeautifulSoup DB : MySQL, Django ORM Server : nCloud, Ubuntu 14.04.4 LTS ETC : Git, Vim, PyCharm, Crontab Source code Application that tells the menu of school cafeteria using KakaoTalk’s auto-answer API The menu is automatically parsed every morning and stored in the DB. I wrote post detailing the development...
-
[Project] Facebook 학식봇
교내 학생식당의 식단을 편리하게 확인할 수 있도록 Facebook에 자동으로 글을 게시하는 Bot을 제작했습니다. Language/Framework : Python/Django Library : FacebookSDK, BeautifulSoup, PyVirtualDisplay Server : nCloud, Ubuntu 14.04.4 LTS 기타 : Git, Vim, PyCharm, Crontab 소스코드 매일 정해진 시간에 이미지와 같은 학생식당의 식단을 이미지로 페이스북에 업로드하도록 만들었습니다. BeautifulSoup로 학식 메뉴 페이지를 파싱해 HTML테이블에 값을 입력한 뒤 PyVirtualDisplay를 이용해 캡쳐한 이미지를 생성하고 Cron을 이용해 매일 정해진 시간에 Facebook에 포스팅하는 방식으로 구현했습니다.
-
[Project] Facebook Cafeteria Menu Bot - English
I developed a bot that automatically posts menu of cafeteria on Facebook. Language/Framework : Python/Django Library : FacebookSDK, BeautifulSoup, PyVirtualDisplay Server : nCloud, Ubuntu 14.04.4 LTS ETC : Git, Vim, PyCharm, Crontab Source code Bot will post cafeteria’s menu like image above, same time, everyday Parsing cafeteria menu with Python’s BeautifulSoup library, than Insert parsed data to HTML table. Using PyVirtualDisplay library take image of HTML table. lastly post image to Facebook using Cron function...
-
카카오톡 자동응답 API로 학식봇 구현
카카오톡의 옐로아이디 자동응답 API로 동국대학교 학생식당의 메뉴를 알려주는 봇을 구현해보았다. Python3와 Django를 이용했으며, Mac OS X를 기반으로 작성했다. 구현된 모습 위의 사진과 같이 동국대학식봇을 친구로 추가하고, 대화창에서 해당 식당의 버튼을 클릭하면 메뉴를 출력해주는 방식으로 구현했다. 시작 및 키보드 구현하기 우선 시작을 하기 위해선 옐로아이디 등록과 카카오 앱 등록이 필요한데, 이는 다른 블로그에도 많이 나와있으므로 생략한다. 카카오 옐로아이디 앱을 등록하고, API형 자동응답을 하기 위해서는 일단 기본적으로 카카오 API중에서 https://your_server_url/keyboard/요청에 알맞게 반응하도록 해야한다. 이제부터 Python과 Django를 이용해...
-
Django Class-based View
Django에는 Class-based view라는 강력한 기능이 있는데, 이를 공부 하기 위해 Documentation을 번역해본다. Class-based view는 view를 Python의 function 대신 object의 형태로 상속받을 수 있는 방법을 제시한다. 이것은 function-based view를 대체하는 것이 아니지만, function-based view와 비교했을 때 확실한 차이점과 이점이 존재한다. 특정 HTTP 메소드(GET,POST,etc)와 관련된 코드들을 조건을 이용해 분기처리 하는 대신 메소드의 형태로 사용할 수 있다. Mixin(다중상속)과 같은 객체지향 테크닉을 활용해 재사용가능한 컴포넌트의 형태로 코드를 짤 수 있다. Generic views, class-based views, class-based generic view의 관계와 역사...
-
동국대학교 학식 알림이봇
스크래핑과 페이스북 API를 공부할 겸 동국대학교 학식을 스크랩 해와서 페이스북에 포스팅하는 프로그램을 만들었다. 처음엔 텍스트 형식으로 스크래핑 해온 값을 포스팅하려고 했지만, 단순 텍스트만 나오니 너무 단조로워서 테이블을 HTML형식으로 만들어서 출력하고, 그것을 서버상의 가상 디스플레이로 열어 스크린샷을 캡쳐하고, 그 스크린샷을 업로드 하는 방식으로 구동했다. 만든지 일주일 정도 되었는데 좋아요수가 130개 남짓 된다. 홍보를 하면 더 늘어날 것 같다.
-
Facebook Page Permanent Access Token 얻기
Facebook 페이지에 자동으로 게시를 하는 봇을 만들다가, Access Token가 일정 시간 뒤에 만료가 되는 문제점이 생겼다. 구글링을 해보니 페이지 Access Token의 경우 영구 Access Token을 발행받을 수 있고, 이 방법을 상세히 설명해놓은 자료가 있어 한글로 번역, 기록해본다. 1. 유저 Short-lived 토큰 얻기 Graph API Explorer로 이동한다. 토큰을 받고자 하는 어플리케이션을 드롭다운 메뉴에서 선택한다.(Explorer 우측상단에 위치) Get Access Token버튼을 클릭한다. 팝업창에서 Extended Permissions을 클릭하고, manage_pages를 선택한다. Get Access Token버튼을 클릭한다. Access Token필드에 나타난 값은 Short-lived토큰이다. 기록해두자....