見出し画像

Steamストアページの情報をTwitterで共有するブックマークレット

ブラウザでネット回覧していると、ページの情報をTwitterなどで共有したい時がある。私の場合は、特にSteamのゲームを紹介するため、ストアページのURLをツイートすることが多い。
例えば、『NieR:Automata』のストアページ

画像6

このゲームについてツイートしたいときは、ストアページに「共有ボタン」というものがあるけど、なぜか私のOperaではうまくいかない。それに、書式に自由に決めて自分専用のツイートボタンを作るなど、柔軟に対応できるようにしたい。
そこで、ブラウザのブックマーク機能を使ってツイートする『ブックマークレット』を作ってみた


サイトからタイトル・URLをツイート

まずは、サイトからタイトルとURLを取得してツイートするブックマークレットについて。私の使用ブラウザはOperaだが、ChromeやFirefoxなど、どのブラウザでも使用可能。

Steamをツイートするブックマークレット

そのブックマークレットはこれ。

javascript:(function(){open("http://twitter.com/intent/tweet?text="+encodeURIComponent(document.title+' '+document.URL),'_blank');})();

ブックマークレットの使い方

マウスのドラッグ操作で、この中の文字を全て範囲指定してから、ブックマークのツールバー(ブラウザによってはブックマークバー、お気に入りバーなど)にドラッグすると、

画像4
画像5

「ブックマークレット」として追加することができる。Operaでは登録確認のダイアログが表示されるが、Chromeでは確認無しで登録されるようだ。

登録したら、先ほどのSteamストアページなどでブックマークレットを押すと、

ツイート01

このように、タイトルとURLをツイートする画面になる。

ブックマークレットの解説とカスタマイズ

これは、Javascriptを使った簡単な構文で、改行を入れたリストはこれ。

javascript:(
 function(){
   open("http://twitter.com/intent/tweet?text="  // ツイートURL
       +encodeURIComponent(                      // URLエンコード
       document.title+' '+document.URL           // タイトル+URL
       ),'_blank'                                // 新規タブで開く
   );
 }
)();


Twitterでは、以下のURL

"http://twitter.com/intent/tweet?text=【ツイート】"

に、ツイートする文字をURLエンコードして直接送ればツイートできる(URLエンコードとは?などの詳しい説明は省略)ので、サイトのタイトル"document.title"とURL"document.URL"を取得して送信しているだけ。

応用編

また、このブックマークレットの利点は、書式を自由に設定できること。例えば、

javascript:(function(){open("http://twitter.com/intent/tweet?text="+encodeURIComponent('『'+document.title+'』 '+document.URL),'_blank');})();

これをブックマークレットとして登録すると、

ツイート03

このように、『タイトル』URLの書式でツイートできるので、自分なりにカスタマイズすると便利で面白いと思う。

SteamページからタイトルとURLのみをツイート

先のブックマークレットについて、Steamのストアページで使用すると、タイトルにはゲーム名と共に「Steam:」や「○○%オフ」の文字が入ってしまう
これを省略して、ゲームタイトルとURLだけツイートすることはできないか。ということで作ってみた。

Steamタイトル・URLのみツイートするブックマークレット

javascript:(function(){open("http://twitter.com/intent/tweet?text="+encodeURIComponent(document.title.replace(/Steam[^:|^:]*[:|:| ]+/,'')+' '+document.URL),'_blank');})();

これを使用すると、

ツイート02

このようにツイートできる。

解説

これも、改行を入れたリストを書いてみると、

javascript:(
 function(){
   open("http://twitter.com/intent/tweet?text="       // ツイートURL
       +encodeURIComponent(document.title.replace(    // URLエンコード・変換
       /Steam[^:|^:]*[:|:| ]+/,'')+' '+document.URL  // 変換書式
       ),'_blank'                                     // 新規タブで開く
   );
 }
)();

取得したタイトルの中で「Steam:」「Steamで○○%オフ」の文字を、Javascriptの置換コマンド「replace()」を使って削除するという処理。

ちなみにこの方法は、こちらの記事に書かれている方法を応用したもの。

取得方法などの詳しい解説の他、ストアページからコミュニティページや実績の表示など、様々なことができるブックマークレットを作っているので、ご参考まで。

サポートは大変ありがたいですが、Twitterを始めとするSNSなどで記事をご紹介いただければ、それも大変嬉しいサポートです。