본문 바로가기
웹 프로그래밍

Java 환경에서 트위터 API를 이용한 SNS 분석

by CHML 2016. 9. 9.
1. 트위터 어플리케이션 생성

트위터 API를 이용하기 위해서는 트위터 가입 및 트위터 어플리케이션 생성이 필요하다. 트위터 가입은 특별한 사항이 없으므로 생략하고, 트위터 어플리케이션 생성에 대해 설명한다.


1) 트위터 어플리케이션을 생성하기 위해 https://apps.twitter.com/에 접속하여 트위터 계정으로 로그인한다. 그 다음, 우측에 있는 Create New App 버튼을 클릭한다 [그릠 1].


[그림 1] 트위터 어플리케이션 생성 1



2) 페이지에 나타난 Name, Description, Website 항목을 입력한다 [그림 2]. 테스트용으로 생성할 경우에는 Website 항목에 임의의 URL을 입력해도 된다.


[그림 2] 트위터 어플리케이션 생성 2



3) 어플리케이션 생성 후 나타나는 페이지에서 Keys and Access Tokens 탭을 클릭한다. 그 다음, 페이지의 가장 아래에 위치한 Create my access token 버튼을 클릭하여 access token을 생성한다 [그림 3].


[그림 3] 트위터 어플리케이션 생성 3



4) Create my access token 버튼을 클릭하면, 자동으로 [그림 4]와 같이 access token이 생성된 것을 확인할 수 있다.


[그림 4] 트위터 어플리케이션 생성 4


Access token까지 생성하였다면, 트위터 어플리케이션 생성을 완료한 것이다. 트위터 API를 이용하기 위해서는 다음과 같은 4개의 값을 알고 있어야 한다.


  • Consumer Key (API Key)

  • Consumer Secret (API Secret)

  • Access Token

  • Access Token Secret


2. Twitter4J를 이용한 트위터 API 접근

Twitter4J는 Java 환경에서 트위터 API의 기능을 이용할 수 있도록 지원하는 라이브러리이다. Twitter4J에 대한 레퍼런스 문서 및 라이브러리 다운로드는 http://twitter4j.org/ko/에서 할 수 있다. Twitter4J 홈페이지의 메인 페이지에서 최신 안정 버전 twitter4j-4.0.4.zip을 다운로드한다 [그림 5].


[그림 5] Twitter4J 다운로드


이 글에서는 Java 개발 도구로써 Eclipse를 이용한다. 따라서, 다운로드 받은 압축 파일의 lib 폴더에 있는 다음과 같은 5개의 jar 파일을 복사해놓아야 한다.


  • twitter4j-async-4.0.4.jar
  • twitter4j-core-4.0.4.jar
  • twitter4j-examples-4.0.4.jar
  • twitter4j-media-support-4.0.4.jar
  • twitter4j-stream-4.0.4.jar


5개의 jar 파일을 Eclipse의 Java 프로젝트 폴더에 복사하고, 해당 프로젝트의 속성에서 Java Build Path 항목으로 이동한다. 그 다음, Java Build Path의 Libraries 탭에서 Add JARs 버튼을 클릭하여 5개의 jar 파일을 모두 프로젝트의 build path에 포함시킨다. 프로젝트의 build path 설정이 완료되었으면, [코드 1]과 같이 Twitter API를 이용하기 위한 instance를 생성한다.


1
2
3
4
5
6
7
8
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
    .setOAuthConsumerKey("")
    .setOAuthConsumerSecret("")
    .setOAuthAccessToken("")
    .setOAuthAccessTokenSecret("");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
cs

[코드 1] 트위터 API를 이용하기 위한 instance 생성


[코드 1]의 ConfigurationBuilder 객체에는 트위터 어플리케이션 생성 과정에서 취득한 consumer key, consumer secret, access token, access token secret를 입력해주어야 한다. [코드 1]에서는 이 부분을 공백 문자열 ("")로 표시하였다. 트위터 API에 접근하기 위해서는 [코드 1]의 8번째 줄에 선언된 Twitter 객체를 이용하면 된다.


3. 키워드로 글 검색하기

Twitter4J를 이용하면, SNS 분석 시 가장 많이 필요로하는 "SNS 글 검색 기능"을 코드 레벨에서 구현할 수 있다. Twitter4J를 이용한 트위터 글 검색 코드는 아래의 [코드 2]와 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BufferedWriter bw = new BufferedWriter(new FileWriter("tweets.txt"));
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
    .setOAuthConsumerKey("")
    .setOAuthConsumerSecret("")
    .setOAuthAccessToken("")
    .setOAuthAccessTokenSecret("");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
Query query = new Query("Machine Learning");
QueryResult result = null;
 
result = twitter.search(query);
for (Status status : result.getTweets()) {
    bw.write("@" + status.getUser().getScreenName() + ":"
             + status.getText() + "|||"
             + status.getRetweetCount() + "\r\n");
}
 
bw.close();
cs

[코드 2] 키워드를 이용한 트위터 글 검색


[코드 2]는 트위터에 게시된 글 중에서 "Machine Learning"이라는 키워드를 포함하고 있는 글을 검색하는 코드이다. 검색된 결과 중에서 글을 작성한 이용자의 이름, 글의 내용, 리트윗 수를 파일에 출력하고 있다. 검색 조건을 설정하는 Query 클래스에 대한 세부 사항은 http://twitter4j.org/javadoc/twitter4j/Query.html를 참조하면 된다.