0
flickr API를 처음 사용합니다. 요청 토큰을 얻기위한 서명을 생성하는 코드를 얻을 수 있습니다. 액세스 토큰을 생성 할 수 없습니다. 항상 그 서명을 말합니다. 유효하지 않다. 내가 서명을 생성하는 코드를 사용하고액세스 토큰을 얻기 위해 flickr에서 oauth_signture를 만듭니다.
는
private static String getreqSignature(String url, String params)
throws UnsupportedEncodingException, NoSuchAlgorithmException,
InvalidKeyException {
StringBuilder base = new StringBuilder();
base.append("GET&");
base.append(url);
base.append("&");
base.append(params);
System.out.println("Stirng for oauth_signature generation:" + base);
// yea, don't ask me why, it is needed to append a "&" to the end of
// secret key.
byte[] keyBytes = (ApplicationContext.getFLICKR_API_SECRET() + "&")
.getBytes(ENC);
SecretKey key = new SecretKeySpec(keyBytes, HMAC_SHA1);
Mac mac = Mac.getInstance(HMAC_SHA1);
mac.init(key);
System.out.println(new String(base64.encode(mac.doFinal(base.toString()
.getBytes(ENC))), ENC));
// encode it, base64 it, change it to string and return.
return new String(base64.encode(mac.doFinal(base.toString().getBytes(
ENC))), ENC).trim();
}
내 쿼리 매개 변수 액세스 token.What 위의 코드에서 변경 얻을 서명을 만드는 방법
qparams.add(new BasicNameValuePair("oauth_consumer_key","******"));
qparams.add(new BasicNameValuePair("oauth_nonce", ""+ (int) (Math.random() * 100000000)));
qparams.add(new BasicNameValuePair("oauth_signature_method","HMAC-SHA1"));
qparams.add(new BasicNameValuePair("oauth_timestamp", ""+ (System.currentTimeMillis()/1000)));
qparams.add(new BasicNameValuePair("oauth_version", "1.0"));
// generate the oauth_signature
String signature = getreqSignature(URLEncoder.encode(
"http://www.flickr.com/services/oauth/request_token", ENC),
URLEncoder.encode(URLEncodedUtils.format(qparams, ENC), ENC));
// qparams.add(new BasicNameValuePair("oauth_verifier", verifier));
qparams.add(new BasicNameValuePair("oauth_signature", signature));
URI uri = URIUtils.createURI("http", "www.flickr.com", -1,
"/services/oauth/request_token",
URLEncodedUtils.format(qparams, ENC), null);
입니다입니다.