InstapaperのAPIを実行するJavaプログラム(認証編)
先日ひょんな事から、InstapaperのAPIを使ったWebアプリを作ろうと思い立ち、JavaでInstapaperのAPIを呼び出すコードを書いてみました。まずは手始めと言うことで、認証のAPI(Instapaperのユーザー名/パスワードで認証する)から。
APIの基本的な使い方をまとめると、以下のとおり。
・決められたURLに対し、ユーザー名/パスワードをパラメータとして、HTTP POSTリクエストを投げる。
・認証に成功した場合HTTP 200が返される。
・認証に失敗した場合、失敗した原因に応じて所定のステータスコードが返される。
# API仕様の詳細は、本家の公開ドキュメントを参照して下さい(英語のドキュメントなので追々翻訳しようかとも考えていますが、需要があるでしょうか?)。
Simple Developer API: Adding Pages to Instapaper
以下、実際に認証APIを呼び出すコードです。動かすためにはcommons-httpclientのモジュールを取得して、クラスパスを通す必要がありますのでご注意下さい。
---サンプルコード ここから
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
public class AuthenticateSample {
public static void main(String[] args) {
String username = "username";//ユーザー名
String password = "password";//パスワード
HttpClient httpclient = new HttpClient();
PostMethod post = new PostMethod(
"https://www.instapaper.com/api/authenticate");
post.addParameter("username", username);
post.addParameter("password", password);
try {
int status = httpclient.executeMethod(post);
System.out.println(status);
System.out.println(new String(post.getResponseBody()));
System.out.println(post.getStatusLine().toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
---サンプルコード ここまで
上記は単に認証しただけなので、Instapaperの機能は何も使えていない状態です。近いうちにURL保存用APIのサンプルコードもアップしたいと思います。