kansiho's blog

ruby, python, javascript. Rails, wordpress, OpenCV, heroku...

かんたん自作シェアボタン | Ruby で動的にツイート内容を変える

f:id:serendipity4u:20170417172047p:plain

Ruby で日本語を含む文字列を扱うために、URLモジュールを入れる

ブラウザは、URLにエスケープされた文字列が含まれていた場合それを展開して表示するが、通信するときはエンコードしている。そのため、a href =“"に入れる日本語はエンコードしておく。

requre "uri"
@text = URI.encode("日本語のエンコードしたい文字列を入れる | sample.jp")
# Twitter

<a href="http://twitter.com/intent/tweet?text=<%= @text %> &amp;url=<%= url %>" class="share__link">
<!-- ここに自作のツイートボタン-->
</a>

#=> ツイートすると、「日本語のエンコードしたい文字列を入れる | sample.jp」 と表示される。

以下のSNSでも、同じように <a href="" class="share__link"></a> という構成で作る。以下はリンクのみメモする。

# Facebook

http://www.facebook.com/sharer.php?u=[シェアする記事のURL]&amp;t=[シェアする記事のタイトル]
select

# Google+

https://plus.google.com/share?url=[シェアする記事のURL]

# はてなブックマーク

http://b.hatena.ne.jp/add?mode=confirm&amp;url=[シェアする記事のURL]&amp;title=[シェアする記事のタイトル]

サブウィンドウで開くようにするscript

jQuery(document).ready(function($){
   /* サブウインドウ表示 */
   $(".share__link").click(function(){
      window.open(this.href,"WindowName","width=520,height=520,resizable=yes,scrollbars=yes");
      return false;
   });
});

参考

general21.com

Rubyで日本語を含むURLを扱う - Haroperi.log

エンコードとはなんぞや

wa3.i-3-i.info

がわかりやすい。