「ブログからRSSをとってきて、更新があったらTwitterにツイートをPOSTする。」
ということをやっているんだけど、URLの短縮化はAPIまかせにしているので
140字の制限に対してまだ余裕がある場合はURLは
「https://blog.bungu-do.jp/archives/1646」
と、そのまま表示される
この場合URLの文字数は37文字
最初はまあ、bungu-doという文字も見えていいかなと思ったけど、
RT(Retweet)された場合などにURLがそのままだと結構文字数制限が
つらくなってくることに気づいた。
だから短縮URLなんだとようやく気づいた。
なので、文字数に足りる足りないに限らず、短縮URLにしておくことに決めた。
そこで、下記記事を参考に当然のごとくRubyでクラスにshortenメソッドを追加した。
参考記事:
bit.ly (短縮URL) API呼び出し (その1) m-kawato@hatena_diary
後はPOSTするところにshortenメソッドをかますだけでOK
def shorten(long_url)
id = 'USER_ID'
api_key = 'API_KEY'
version = '2.0.1'
query = "version=#{version}&longUrl=#{long_url}&login=#{id}&apiKey=#{api_key}"
result = JSON.parse(Net::HTTP.get("api.bit.ly", "/shorten?#{query}"))
result['results'].each_pair {|long_url, value|
return value['shortUrl']
}
end
bit.lyのアカウントを取得すればAPI KEYをもらえます。
通常URL
https://blog.bungu-do.jp/archives/1646 【37文字】
短縮URL
http://bit.ly/3OcFKj 【20文字】
37文字から20文字へとあんまり変わらないような気もするけど・・・・
もっと長いURLでも20文字になる。
たとえば
irb(main):001:0> 'http://japan.cnet.com/news/biz/story/0,2000056020,20403566,00.htm'.size => 65 irb(main):002:0> 'http://bit.ly/42A19r'.size => 20
65文字から20文字へと3分の1以下になる。
うまくいけばこの記事のPOSTもちゃんとツイートされるはず・・・
関連記事
- None Found


“Rubyでbit.lyのAPI経由で短縮URLを取得する” への1件の返信