スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Java] twitter4jを使っていろいろ取得してみる

※twitter4j-core-2.1.11.jarを使用

package com.taepon;

import java.util.List;
import twitter4j.*;

public class TwitterTimelines
{
public static void main(String[] args)
{
Twitter twitter = new TwitterFactory().getInstance();

try
{
// パブリックタイムラインの取得
List statuses1 = twitter.getPublicTimeline();
for (Status status : statuses1)
{
System.out.println(status.getUser().getName() + ":" + status.getText());
}

// 特定ユーザーの言語とURLを取得
User user = twitter.showUser("taepon0202");
System.out.println(user.getLang());
System.out.println(user.getURL());

// 特定ユーザーのツイートを取得
List statuses2 = twitter.getUserTimeline("taepon0202");
for (Status status : statuses2)
{
System.out.println(status.getUser().getName() + ":" + status.getText());
}

// 特定のツイート(ステータス)を取得
Status statuses3 = twitter.showStatus(39393371265040385L);
System.out.println(statuses3.getText());

// 文字列を指定して検索
Query query = new Query();
query.setQuery("Android");
query.setLang("ja"); // 日本語の記事のみ
query.since("2011-03-01"); // between from
query.until("2011-03-31"); // between to
query.setResultType(Query.RECENT); // 新着順
query.setRpp(10); // 最大10件まで
query.setPage(1); // 検索結果が多い場合に何ページ目を返すか

// ツイートを取得
QueryResult qResult = twitter.search(query);
List tweetList = qResult.getTweets();
for (Tweet tweet : tweetList)
{
System.out.println(tweet.getText());
}
}
catch (TwitterException e)
{
System.err.println(e.getMessage());
e.printStackTrace();
}
}
}


OAuthのアクセストークンを取得

String strConsumerKey = "=== INSERT CONSUMER KEY HERE ===";
String strConsumerSecret = "=== INSERT CONSUMER SECRET HERE ===";

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(strConsumerKey, strConsumerSecret);
RequestToken reqToken = twitter.getOAuthRequestToken();
AccessToken accToken = null;

while (null == accToken)
{
// コンソールに表示されたアドレスにアクセスし、Twitterにログイン
System.out.println(reqToken.getAuthorizationURL());

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String pin = br.readLine();

try
{
accToken = twitter.getOAuthAccessToken();
}
catch (TwitterException e)
{
System.out.println("ERROR sc: " + e.getStatusCode() + " msg: " + e.getMessage());
}
}

// Twitterログイン後、コンソールでエンターキーを押す
System.out.println("AccessToken = " + accToken.getToken());
System.out.println("AccessTokenSeclet = " + accToken.getTokenSecret());

Status status = twitter.updateStatus("あっぷでーとすてーたす"); // つぶやく
System.out.println("Success Updated : " + status.getText());

クライアントアプリの場合、↓のURLにアクセスして自分のID&PASSを入力後、

System.out.println(reqToken.getAuthorizationURL());

暗証番号として7桁のPINコード("6727689"等)が発番されるので、
以下のようにしてアクセストークンを取得する事もできます。

AccessToken accToken = twitter.getOAuthAccessToken(reqToken, "6727689");

但し、引数のリクエストトークンは、URLを発行した時のリクエストトークンと同じ参照でないといけない。
(SessionScopeにリクエストトークンを格納する等して使い回さないと駄目)

一度取得したアクセストークンの再利用は以下の通り。

String strConsumerKey = "=== INSERT CONSUMER KEY HERE ===";
String strConsumerSecret = "=== INSERT CONSUMER SECRET HERE ===";
String strAccessToken = "=== INSERT ACCESS TOKEN HERE ===";
String strAccessTokenSecret = "=== INSERT ACCESS TOKEN SECRET HERE ===";

// Twitterオブジェクトを生成
// 現在、getOAuthAuthorizedInstanceメソッドが非推奨となっている。
//AccessToken accessToken = new AccessToken(strAccToken, strAccTokenSecret);
//Twitter twitter = new TwitterFactory().getOAuthAuthorizedInstance(strConsumerKey, strConsumerSecret, accessToken);

ConfigurationBuilder confbuilder = new ConfigurationBuilder();
confbuilder.setOAuthConsumerKey(strConsumerKey);
confbuilder.setOAuthConsumerSecret(strConsumerSecret);
confbuilder.setOAuthAccessToken(strAccessToken);
confbuilder.setOAuthAccessTokenSecret(strAccessTokenSecret);
Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance();

Status status = twitter.updateStatus("あっぷでーとすてーたす"); // つぶやく
System.out.println("Success Updated : " + status.getText());
関連記事
スポンサーサイト

Pagination

Trackback

Trackback URL

http://morado106.blog106.fc2.com/tb.php/58-71fd628b

Comment

Post Your Comment

コメント登録フォーム
公開設定

Utility

プロフィール

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。