「ブログから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件の返信