diff --git a/src/main/Main.java b/src/main/Main.java index 3fd586b..e9fa0b4 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -10,13 +10,13 @@ @SuppressWarnings("unused") public static void main(String[] args) { TestCactus[] cactus = { new TestGETCactus(), new TestCreatePOSTCactus("f", "f", "f"), - new TestLogoutPOSTCactus("h41ZoL44toLq3Kg7B1aXreHjcjluAsoyz8DezqiXJ28s1atiGR5UHFOqi7Or3xOD"), + new TestLogoutPOSTCactus("8gAymYyC9XS6VcU1OEIdhMVHJnCqql5Qx9EBaCPezsEsvCoqLeq88wYhjtKA7uBH"), new TestPUTCactus("f", "f"), new TestDELETECactus("qF9bgKYZmw8P") }; TestYouTube[] youtube = { new TestGETYouTube(token), new TestPOSTYouTube(token), new TestPUTYouTube(token), new TestDELETEYouTube(token, "PLCwNa5MZdBSrIn-8nc9gDckf2kzXejtL_") }; TestTwitter[] twitter = { new TestGETListsTwitter("masterlink3535"), - new TestPOSTcreateTwitter("masterlink3535") }; - twitter[0].start(); + new TestPOSTcreateTwitter("masterlink3535") }; + cactus[3].start(); } } diff --git a/src/testcase/twitter/OAuthHeader.java b/src/testcase/twitter/OAuthHeader.java index 1baacde..c16ea94 100644 --- a/src/testcase/twitter/OAuthHeader.java +++ b/src/testcase/twitter/OAuthHeader.java @@ -1,9 +1,11 @@ package testcase.twitter; +import java.io.BufferedReader; +import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.URL; import java.net.URLEncoder; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; import java.util.Map.Entry; import java.util.SortedMap; import java.util.TreeMap; @@ -22,96 +24,87 @@ private String url = "https://api.twitter.com/oauth/request_token"; private SortedMap params = new TreeMap(); - public String getConsumer_key() { - return consumer_key; - } + public static void main(String[] args) throws Exception { + // OAuth�ɂ����ė��p����ϐ��錾 + String consumerkey = "xPk6o11catewYwxGcXvvvqo2I"; + String consumerSecret = "P9oXQstrFURXcbV8qT4OJzLjNfgYkpo1AvJzUnbywsEiDpuytb"; + String oauthToken = "E7D28QAAAAAA9Im2AAABaCZ6YNc"; + String oauthTokenSecret = "zdhnHCamrW3jLSb3GbwhVlnmJZsOqX1V"; + String method = "POST"; + String urlStr = "https://api.twitter.com/oauth/access_token"; - public void setConsumer_key(String consumer_key) { - this.consumer_key = consumer_key; - } - - public String getConsumer_secret() { - return consumer_secret; - } - - public void setConsumer_secret(String consumer_secret) { - this.consumer_secret = consumer_secret; - } - - public String getOauth_token() { - return oauth_token; - } - - public void setOauth_token(String oauth_token) { - this.oauth_token = oauth_token; - } - - public String getOauth_secret() { - return oauth_secret; - } - - public void setOauth_secret(String oauth_secret) { - this.oauth_secret = oauth_secret; - } - - public void generateSignature(){ - params.put("oauth_consumer_key", consumer_key); + // ���ʃp�����[�^�[ + SortedMap params = new TreeMap(); + params.put("oauth_consumer_key", consumerkey); params.put("oauth_signature_method", "HMAC-SHA1"); params.put("oauth_timestamp", String.valueOf(getUnixTime())); params.put("oauth_nonce", String.valueOf(Math.random())); params.put("oauth_version", "1.0"); - String paramStr = ""; - for (Entry param : params.entrySet()) { - paramStr += "&" + param.getKey() + "=" + param.getValue(); - } - paramStr = paramStr.substring(1); + params.put("oauth_token", oauthToken); - // �����Ώۃe�L�X�g�isignature base string�j�̍쐬 - String text = method + "&" + urlEncode(url) + "&" - + urlEncode(paramStr); + // �A�N�Z�X�g�[�N���擾���ɂ̂ݗ��p����p�����[�^�[ + // �A�v���P�[�V�����̋��‚������ꍇ�ɕ\�������Ïؔԍ���ݒ肷�� + params.put("oauth_verifier", "�Ïؔԍ�"); - // �����L�[�̍쐬 - String key = urlEncode(consumer_secret) + "&" - + urlEncode(oauth_secret); + { + /* + * �����ioauth_signature�j�̐��� + * ���N�G�X�g�g�[�N���擾���ƑS���������� + */ + String paramStr = ""; + for (Entry param : params.entrySet()) { + paramStr += "&" + param.getKey() + "=" + param.getValue(); + } + paramStr = paramStr.substring(1); - // HMAC-SHA1�ŏ����𐶐� - SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), - "HmacSHA1"); - Mac mac = null; - try { - mac = Mac.getInstance(signingKey.getAlgorithm()); - } catch (NoSuchAlgorithmException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - try { + String text = method + "&" + urlEncode(urlStr) + "&" + + urlEncode(paramStr); + + String key = urlEncode(consumerSecret) + "&" + + urlEncode(oauthTokenSecret); + + SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), + "HmacSHA1"); + Mac mac = Mac.getInstance(signingKey.getAlgorithm()); mac.init(signingKey); - } catch (InvalidKeyException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - byte[] rawHmac = mac.doFinal(text.getBytes()); - String signature = new BASE64Encoder().encode(rawHmac); + byte[] rawHmac = mac.doFinal(text.getBytes()); + String signature = new BASE64Encoder().encode(rawHmac); - // �������p�����[�^�ɒlj� - params.put("oauth_signature", signature); - } - - public String getAuthorization() { + params.put("oauth_signature", signature); + } + + /* + * Authorization�w�b�_�̍쐬��API�̌Ăяo�� + * ���N�G�X�g�g�[�N���擾���ƑS���������� + */ + // Authorization�w�b�_�̍쐬 String paramStr = ""; for (Entry param : params.entrySet()) { paramStr += ", " + param.getKey() + "=\"" + urlEncode(param.getValue()) + "\""; } paramStr = paramStr.substring(2); - return "OAuth " + paramStr; + String authorizationHeader = "OAuth " + paramStr; + + // API�ɃA�N�Z�X + URL url = new URL(urlStr); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod(method); + connection.setRequestProperty("Authorization", authorizationHeader); + connection.connect(); + BufferedReader reader = new BufferedReader(new InputStreamReader( + connection.getInputStream())); + String response; + while ((response = reader.readLine()) != null) { + System.out.println(response); + } } - - private int getUnixTime() { + + private static int getUnixTime() { return (int) (System.currentTimeMillis() / 1000L); } - private String urlEncode(String string) { + private static String urlEncode(String string) { try { return URLEncoder.encode(string, "UTF-8"); } catch (UnsupportedEncodingException e) {