2012年11月7日水曜日

Java(Android)でOAuthEchoをする方法

最近までOAuthEchoという仕組みを知らなかったのですが,この仕組みを使う機会を得たので作ってみました.
検索してもコピペでサクッと使えるようなものが見つからなかったので,コピペでサクッと使ってもらえるようにコピペでサクッと使えそうな感じに書いておきます.
Twitter4Jの2.2.6を使用しています.
Androidで実行しましたが,Twitter4Jさえ使えればAndroid以外のJava環境でも動作すると思います.

TwitterのOAuth認証などはすでに終わっているという前提です.
CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN,ACCESS_TOKEN_SECRET,URLは環境に合わせて与えてください.
Configuration configuration = ConfigurationContext.getInstance();
OAuthAuthorization oAuthAuthorization = new OAuthAuthorization(configuration);
oAuthAuthorization.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
oAuthAuthorization.setOAuthAccessToken(new AccessToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET));
List<HttpParameter> oauthSignatureParams = oAuthAuthorization.generateOAuthSignatureHttpParams("GET", "https://api.twitter.com/1/account/verify_credentials.json");
String xVerifyCredentialsAuthorization = "OAuth realm=\"http://api.twitter.com/\"," + OAuthAuthorization.encodeParameters(oauthSignatureParams, ",", true);
HttpPost httpPost = new HttpPost(URL);
httpPost.addHeader("X-Auth-Service-Provider", "https://api.twitter.com/1/account/verify_credentials.json");
httpPost.addHeader("X-Verify-Credentials-Authorization", xVerifyCredentialsAuthorization);

必要ならばパラメータを付与し,HttpPostでリクエストを送信したら完了です.
Android以外の環境ではHttpPostに別途ライブラリが必要かもしれないので,ライブラリを追加するか,その部分を別のものに置き換えてください.

0 件のコメント:

コメントを投稿