新浪微博の各ポストに当たるURLを生成する必要があったので、調べました。
URLはhttp://weibo.com/<user id>/<post mid>という構造になっていて、post midはpost idから計算できます。
post midを計算するAPI(Querymid)が用意されていたようですが、今の提供されていないようです。
それ以前に単なる関数なのにRESTで取得するのが嫌だった人がいて、関数を実装されていました。
ちょっと長いコードですが、どうやら大部分はbase62の実装のようです。
Rubyにはbase62のgemがあったので、それを使って、id2midだけ実装しました。
require 'base62' def id2mid id id.to_s.reverse.scan(/.{1,7}/) # 下から7桁ずつに分割 .map { |a| a.reverse.to_i.base62_encode }.reverse # 各パートをbase62エンコード .join('').swapcase #くっつけて大文字小文字変換 end
終わり。(短くてすいません)