Flickrの短縮URLをJavaで生成
Flickrの短縮URLをJavaで作ろうとしたけど、妙に詰まったのでメモ。
Flickrには短縮URLが用意されています。
http://flic.kr/p/HogeHge
みたいな感じでアクセスできます。
このHogeHogeの部分は写真のIDをBase58エンコードしたものらしいです。
というわけで、Base64エンコードのコードを参考に作ったりしたけど、
どうにもうまくいかず、、最終的には以下のコードでうまくいきました。
private static String base58Encode(String id) { int num = Integer.parseInt(id); String alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"; int base_count = alphabet.length(); StringBuffer encode = new StringBuffer(); while (num >= base_count) { int div = num / base_count; int mod = num % base_count; encode.insert(0, alphabet.charAt(mod)); num = div; } if (num != 0) { encode.insert(0, alphabet.charAt(num)); } return encode.toString(); }
IDを数字としてそのまま使うのがポイントだったんだろうか・・。
色々試しすぎて、何が悪かったのかよくわかりませんが、とりあえずできました。