31
트트트 트 트트트 트트트트 트트트 트트트트트 ! 트트트트트 24 트 트트트 ZeroPage X CAUCSE Steamers

[devil's camp] - 트위터 봇 만들기 (권준혁)

Embed Size (px)

Citation preview

Page 1: [devil's camp] - 트위터 봇 만들기 (권준혁)

트위터 봇 만들기짹짹이의 기분이 되는거에요 !제로페이지 24 기 권준혁ZeroPage X CAUCSE Steamers

Page 2: [devil's camp] - 트위터 봇 만들기 (권준혁)

강사 소개• 제로페이지 24 기• 현재 스티머즈 회장• 병특노예 희망중 (2 학기 휴학하고 싶다 )

• 게임 제외한 프로젝트 진행 사실상 없음• java 에서 외부 라이브러리도 이번에 처음 가져다 씀 ,,,

Page 3: [devil's camp] - 트위터 봇 만들기 (권준혁)

진행 내용• 실습 , 코드 그런거 없습니다 ( 준비할 시간이 없었음 ,,, 그리고 1 시간 ,,,)

• 코드를 보며 자세한 설명 그런거 없습니다 ( 까먹고 스샷을 안찍어둠 ,,,)

• 대충 어떤 식으로 봇을 만들면 되는지에 대한 내용 ? 입니다

Page 4: [devil's camp] - 트위터 봇 만들기 (권준혁)

트위터 봇이란 ?

• 트위터의 Robot

• 기능은 제각각• 프로그램이 트위터를 돌리고 있으면 일단 Bot

• 수동 Bot 은 그냥 컨셉놀이계정

Page 5: [devil's camp] - 트위터 봇 만들기 (권준혁)

대표적인 봇

Page 6: [devil's camp] - 트위터 봇 만들기 (권준혁)

데빌스캠프도 있으니 만들어보자• 언젠가는 만들려고 했는데 이번기회에 만들어보기로 했습니다 .

• 뭔가 인터넷 통신하고 그러니까 서버지식 있어야 하나 하고 이때까지 미뤄뒀습니다 . ( 아니더라고요 )

• 이렇게 귀차니즘이 무섭습니다

Page 7: [devil's camp] - 트위터 봇 만들기 (권준혁)

그래서 만들어진 과정• 수요일 - 세션을 하기로 결정이 남• ???• JDP 가동

Page 8: [devil's camp] - 트위터 봇 만들기 (권준혁)

JDP 가 돕니다• 목요일 - 조사 및 개발 시작• 금요일 - 생각보다 어렵다 + 원래 일정이 있었음• 토요일 - ^^;;;;

• 어떻게든 되긴 함• https://twitter.com/princess_yutki

Page 9: [devil's camp] - 트위터 봇 만들기 (권준혁)

그래서 어떻게 만드나요• 1. 프로그램을 짠다• 2. 자신의 컴퓨터에서 돌린다• 3. 끝• 서버지식 X, 트위터 API 전부 읽을 필요 X

• 툭 까놓고 말해서 C 언어만 할 수 있어도 만들수있음• 왜냐면 라이브러리가 있거든요 !

Page 10: [devil's camp] - 트위터 봇 만들기 (권준혁)

여기서 잠깐봇을 만드려면 ?• 이미 프로그램 안짜도 봇을 만들어주는 사이트가 많음• 그러나 추가기능은 유료고 , 제한도 걸려있음• 자신이 기능 추가하는게 불가• 그래서 그냥 내가 만들기로 함 ( 공부도 하는셈치고 )

• http://matome.naver.jp/odai/2133695904966289401

Page 11: [devil's camp] - 트위터 봇 만들기 (권준혁)

1. 라이브러리 조사• 최근 자바를 손대보고 있어서 자바로 하기로 함• http://stackoverflow.com/questions/851767/b

est-java-twitter-library

• Twitter4J 를 사용하기로 함• 업데이트를 잘 해주고 , 초보자가 사용하기 쉬움 , 튜토리얼 풍부 ( 한국어 튜토리얼도 있음 )

Page 12: [devil's camp] - 트위터 봇 만들기 (권준혁)

예제를 보면서 공부한다

• http://twitter4j.org/ko/code-examples.html

Page 13: [devil's camp] - 트위터 봇 만들기 (권준혁)

2. 어플리케이션 등록

Page 14: [devil's camp] - 트위터 봇 만들기 (권준혁)
Page 15: [devil's camp] - 트위터 봇 만들기 (권준혁)
Page 16: [devil's camp] - 트위터 봇 만들기 (권준혁)

여기서 얻은 정보를 어플리케이션에 등록하면 끝• 어플리케이션은 이 정보를 이용해서 내가 어떤 어플리케이션인지 트위터 API 에 알린다• 유저의 토큰 키를 사용해서 이 어플리케이션이 유저에게 접근 할 수 있다• Twitter4J 는 properties 파일로 저장해두면 편함

Page 17: [devil's camp] - 트위터 봇 만들기 (권준혁)

이 정보만으로도 간단한 프로그램이 가능• 이제 Twitter4J 로 프로그램을 짭니다• TwitterFactory 에서 Twitter 객체를 찍어내서 그걸 하나의 계정으로 취급하는 방식인듯하였습니다• 참고한 사이트 -

http://d.hatena.ne.jp/redcat_prog/20120315/1331780805

Page 18: [devil's camp] - 트위터 봇 만들기 (권준혁)

• BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

• String tweet = "";

• while(tweet.isEmpty()) {

• System.out.print(" 今何してる ? : ");

• tweet = br.readLine();

• if(tweet.length() > 140) {

• System.out.println(" 字数制限を超えています。 ");

• tweet = "";

• continue;

• }

• }

• Twitter twitter = new TwitterFactory().getInstance();

• Status status = twitter.updateStatus(tweet);

• System.out.println(status.getUser().getScreenName() + " として投稿しました : " + status.getText());

Page 19: [devil's camp] - 트위터 봇 만들기 (권준혁)
Page 20: [devil's camp] - 트위터 봇 만들기 (권준혁)
Page 21: [devil's camp] - 트위터 봇 만들기 (권준혁)

기능을 생각해봄- 정기 트윗- 타임라인 분석해서 특정 키워드에 반응하기- 멘션이 오면 그것에 반응하기- 멘션이 오면 맞는 이미지를 합성해서 반환

Page 22: [devil's camp] - 트위터 봇 만들기 (권준혁)

기능을 생각해봄- 정기 트윗- 타임라인 분석해서 특정 키워드에 반응하기- 멘션이 오면 그것에 반응하기- 멘션이 오면 맞는 이미지를 합성해서 반환

Page 23: [devil's camp] - 트위터 봇 만들기 (권준혁)

기능을 생각해봄- 정기 트윗- 타임라인 분석해서 특정 키워드에 반응하기- 멘션이 오면 그것에 반응하기- 멘션이 오면 맞는 이미지를 합성해서 반환

Page 24: [devil's camp] - 트위터 봇 만들기 (권준혁)

기능을 생각해봄- 정기 트윗- 타임라인 분석해서 특정 키워드에 반응하기- 멘션이 오면 그것에 반응하기- 멘션이 오면 맞는 이미지를 합성해서 반환에휴 왜그랬지 ? ㅜㅜ

Page 25: [devil's camp] - 트위터 봇 만들기 (권준혁)

다른 계정을 인증하는 법• 1. 어플리케이션에서 토큰 요청 URL 을 생성• 2. 들어감• 3. 인증하고 싶은 계정으로 로그인 후 앱 승인• 4. 인증• 저같은 경우는 핀으로 인증 진행

Page 26: [devil's camp] - 트위터 봇 만들기 (권준혁)
Page 27: [devil's camp] - 트위터 봇 만들기 (권준혁)
Page 28: [devil's camp] - 트위터 봇 만들기 (권준혁)

이렇게 인증하면 다른 계정에도 됨 ㅎ

Page 29: [devil's camp] - 트위터 봇 만들기 (권준혁)

정시 알림도 성공 ㅎ

Page 30: [devil's camp] - 트위터 봇 만들기 (권준혁)

주의 할 점• 트위터는 짧은 간격으로 비슷한 문장을 던질 수 없다 (문장 유사도 검사를 내부에서 하는듯 )

• 그래서 테스트 할 때 짧은 간격으로 날리려면 일일히 다른 문장으로 해서 날려줘야됨 ( 실제로 만들때도 생각해야됨 )

• 시간 알림 폼도 숫자만 바꿔서는 중복 트윗이라고 막음

Page 31: [devil's camp] - 트위터 봇 만들기 (권준혁)

결론• 봇만들기 어렵지 않다 . 트잉여는 해보자• 직접 만들면 이런저런 기능 섞을 수 있어서 재밌는 걸 만들 수 있다• 라이브러리 짱짱인 것• 남은 기능은 프로젝트로 돌려서 데빌스 끝나고 만드는걸로 ,,,