Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save komiya-atsushi/5377242 to your computer and use it in GitHub Desktop.
Save komiya-atsushi/5377242 to your computer and use it in GitHub Desktop.
Twitter4J で Application-only authentication の bearer トークンを用いて Twitter API を呼び出す ref: http://qiita.com/items/84d22445fac14dc6cffa
package demo.twitter4j;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.Authorization;
import twitter4j.conf.ConfigurationBuilder;
import twitter4j.internal.http.HttpRequest;
/**
* Twitter4J で Application-only authentication の取得済み bearer トークンを設定して Twitter API を呼び出す
* 手順を示すデモアプリです。
*/
public class BearerAuthenticateByTwitter4JDemo {
/** ここに取得済みの Application-only authentication のアクセストークン (bearer トークン) を設定する */
private static final String bearer = "トークンをここに設定する";
public static void main(String[] args) throws TwitterException {
// bearer トークンを用いて通信をする場合は、SSL 通信が必須となる
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setUseSSL(true);
// Configuration および Authorization のオブジェクトを設定して Twitter オブジェクトを
// 生成するようにする
Twitter twitter =
new TwitterFactory(builder.build())
.getInstance(new BearerAuthorization(bearer));
// あとは、Application-only authentication で許可された API を好きなだけ叩くのみ
System.out.println(twitter.getRateLimitStatus().toString());
}
/**
* bearer トークンを利用して Twitter API を呼び出すための Authorization 実装クラスです。
* <p>
* HTTT リクエスト時の "Authorization" ヘッダに設定される文字列を getAuthorizationHeader() メソッドで生成して返却します。
* </p>
*/
public static class BearerAuthorization implements Authorization {
private String bearer;
BearerAuthorization(String bearer) {
this.bearer = bearer;
}
@Override
public String getAuthorizationHeader(HttpRequest req) {
return "Bearer " + bearer;
}
@Override
public boolean isEnabled() {
return bearer != null;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment