twitter4j+processing

16
Twitter4j + Processing 오재혁 2011년 1월 10일 월요일

Upload: jaehyeuk-oh

Post on 04-Apr-2015

322 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Twitter4J+Processing

Twitter4j + Processing오재혁

2011년 1월 10일 월요일

Page 2: Twitter4J+Processing

-1. 개발 환경 구축

• http://processing.org/download/

• http://twitter4j.org/en/index.html#download twitter4j-2.1.10.zip

다운로드

2011년 1월 10일 월요일

Page 3: Twitter4J+Processing

-1. 개발 환경 구축

• Processing 설치 후, Library 등록

• Mac 에서는 Library 등록이 잘 안된다. 압축을 풀면 보이는 twitter4j-core-2.1.10.jar 파일을 프로세싱의 Code 편집 창에 Drag 하면, 해당 Sketch 에서 twitter4j api 사용 가능하게 된다.

설치

2011년 1월 10일 월요일

Page 4: Twitter4J+Processing

1. OAuth 사용

• Open Authentication

• Client 제작사도 믿을 수 없다!

• 보안이 강화된 인증 방식

정의

2011년 1월 10일 월요일

Page 5: Twitter4J+Processing

1-1. 트위터 클라이언트 등록하기

• http://twitter.com/oauth_clientsApplication Icon : 새로 선택하지 않아도 OK

Application Name : 적당히 겹치지 않게Description : 적당히 길게

Application Website : 적당한 웹사이트로Organization : 적당한 이름

Website : 기입하지 않아도 괜찮음Application Type : Client

Default Access type : Read & WriteUse Twitter for login : 선택하지 않음

2011년 1월 10일 월요일

Page 6: Twitter4J+Processing

1-1. 트위터 클라이언트 등록하기

• 등록 후에는 아래 정보를 얻을 수 있다.

Consumer KeyConsumer Secret Key Request token URLAccess token URL

Authorize URL

cont’d

2011년 1월 10일 월요일

Page 7: Twitter4J+Processing

1-2. 인증토큰 얻기

• twitter4j api 사용가능한 환경에서 (-1. 참조), 다음의 코드를 입력, 실행한다.

2011년 1월 10일 월요일

Page 8: Twitter4J+Processing

String CONSUMER_KEY = "발급받은 CONSUMER Key";String CONSUMER_SECRET = "발급받은 CONSUMER SECRET";

void setup (){ Twitter twitter = new Twitter();

twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); RequestToken requestToken = null; try { requestToken = twitter.getOAuthRequestToken(); println(requestToken.getToken()); } catch (TwitterException e) { }}

void draw(){}

2011년 1월 10일 월요일

Page 9: Twitter4J+Processing

1-2. 인증토큰 얻기

• 실행 하면, '인증토큰' 을 얻을 수 있다.

cont’d

2011년 1월 10일 월요일

Page 10: Twitter4J+Processing

1-3. PIN 번호 얻기• 1-2. 에서 얻은 인증토큰을 갖고 web browser 에서 아래 주소를 입력한다.

• http://twitter.com/oauth/authorize?oauth_token=인증토큰

• 'Allow (twitter application name) access?' 를 물어보는 페이지에서 Allow 를 누르면

• PIN 번호를 얻을 수 있다.

2011년 1월 10일 월요일

Page 11: Twitter4J+Processing

1-4. access token 얻기

• 다음의 코드를 실행한다.

2011년 1월 10일 월요일

Page 12: Twitter4J+Processing

String CONSUMER_KEY = "발급받은 CONSUMER Key";String CONSUMER_SECRET = "발급받은 CONSUMER SECRET";

String oauthToken = "1-2. 에서 얻은 인증토큰";String pin = "1-3. 에서 얻은 PIN 번호";

String aToken, aTokenSecret;

void setup (){ Twitter twitter = new Twitter(); twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);

AccessToken accessToken = null; try { accessToken = twitter.getOAuthAccessToken(oauthToken, pin); println(twitter.verifyCredentials().getId()); println("token : " + accessToken.getToken()); println("tokenSecret : " + accessToken.getTokenSecret()); Status status = twitter.updateStatus(args[0]); println("Successfully updated the status to [" + status.getText() + "].");

} catch (TwitterException e) { println("exception" + e); }}

void draw(){}

2011년 1월 10일 월요일

Page 13: Twitter4J+Processing

1-4. access token 얻기

• 결과에서 token, tokenSecret 값은 복사 후 저장한다.

• 위의 코드를 한번 실행하면, 발급받은 인증 토큰은 무효화 된다. (1-2. 부터 다시 반복해야 한다.)

cont’d

2011년 1월 10일 월요일

Page 14: Twitter4J+Processing

1-5. 접속, 인증, 활용

• 1-4. 에서 저장한 access token, access token secret 을 갖고 이후 반복해서 twitter 서비스에 접속 가능하다.

2011년 1월 10일 월요일

Page 15: Twitter4J+Processing

String CONSUMER_KEY = "발급받은 CONSUMER Key";String CONSUMER_SECRET = "발급받은 CONSUMER SECRET";

String oauthToken = "1-2. 에서 얻은 인증토큰";String pin = "1-3. 에서 얻은 PIN 번호";

String ATOKEN = " 1-4. 에서 얻은 access Token ";String ATOKEN_SECRET = " 1-4. 에서 얻은 access Token Secret ";

void setup (){ // OAuth 를 활용한, 접속, 인증 Twitter twitter = new Twitter(); twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); AccessToken aT = null; aT = new AccessToken(ATOKEN, ATOKEN_SECRET); twitter.setOAuthAccessToken(aT);

// twitter4j api 활용 (friends timeline 얻어오기 예제) try { Paging page = new Paging(); page.count(80); for (int i = 1; i >= 1; i--) { println("page# " + i); page.setPage(i); ResponseList<Status> statuses = twitter.getFriendsTimeline(page); for (Status s : statuses) { println(s.getId() + ":" + s.getCreatedAt() + " :: " + s.getUser().getScreenName() + " :: " + s.getText()); } } println("pageout"); } catch (TwitterException te) { println("Couldn't connect: " + te); };}

void draw(){}

2011년 1월 10일 월요일