S-Collection株式会社 システムについて

S-Collection株式会社のシステムサポート事業

SNS連携のためのAPI活用法ーTwitter編②

徹底解説!Twitter API

前回は、APIについて説明しました。今回は、具体的にTwitter APIのつかい方について説明します。

2.Twitter APIのつかい方

アプリの登録

すでにTwitterのアカウントを取得している前提で説明します。
まずはアプリケーションの登録を行います。ログインした状態で以下のページにアクセスすると、Create New Appと書かれたボタンがあるのでクリックします。
https://apps.twitter.com
Nameと書かれた欄に登録するアプリの名前を入れます。Descriptionはアプリの説明です。Websiteが特にない場合は自分のTwitterのページを登録すればよいでしょう。必須項目の入力、規約の同意にチェックを入れてCreate your Twitter applicationボタンを押せば登録が完了します。
このとき、Twitterのアカウントに電話番号を登録していないとエラーが発生しますので事前に登録しておきましょう。
登録完了後、Keys and Access TokensページのCreate my access tokenボタンを押します。そうすると
・Consumer Key
・Consumer Secret
Access Token
Access Token Secret
の4つが発行されます。これらのキーはTwitterの認証の際に利用します。ほかの人に知られないようにしましょう。間違っても公開してはいけません。

APIを利用してツイート検索

今回はJavaでつくったプログラムでAPIを利用し、ツイートの検索を行っていきます。
また、APIを利用するにあたりTwitter4Jライブラリを利用します。Twitter4JはJSONやHTTPに詳しくなくても容易にTwitter APIを利用できるTwitter非公式のライブラリです。
Twitter4Jのダウンロード、つかい方は以下のページを参考にしてください。ここではライブラリにTwtter4Jがある状態として話を進めます。
http://twitter4j.org/ja/index.html
今回は #マクドナルド を含むつぶやきを100件取得し、テキストファイルに書き起こしてみます。
以下、簡単に作成したコードになります。
public static void main(String[] args) {
// アクセストークンなど準備
// 引数は適宜読み替えてください
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("ConsumerKey")
.setOAuthConsumerSecret("ConsumerSecret")
.setOAuthAccessToken("AccessToken")
.setOAuthAccessTokenSecret("AccessTokenSecret");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try {
File file = new File("tweets.txt");
PrintWriter pw;
// tweets.txtに書き込む
pw = new PrintWriter(new BufferedWriter(new FileWriter(file,false)));
Query query = new Query();
// 検索ワードをセット
query.setQuery("#マクドナルド");
// 1度のリクエストで取得するTweetの数(100が最大)
query.setCount(100);
// 検索実行
QueryResult result = twitter.search(query);
// 検索結果を見てみる
for (Status tweet : result.getTweets()) {
pw.println("ユーザー:");
pw.println(tweet.getUser().getName()+","+tweet.getUser().getScreenName());
// 本文
pw.println("本文:");
pw.println(tweet.getText());
pw.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
pw.close();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (TwitterException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}

実行すると tweets.txt にユーザー名+IDと本文が出力されます。
ブラウザ上で行うより簡単にリストアップを行うことができます。

このようにAPIをつかえば投稿内容の分析をする環境が簡単に整います。
次回はAPIをつかったサービスの連携について紹介します。