ツイートボタンのツイート内容を動的に変える
https://twitter.com/about/resources/buttons#tweet
そこかしこにあるtweetボタン、上記URLでツイートする内容とかどのハッシュタグつけるかを指定して作ることができます。
が、結局これはtwitterの提供するjsが、ページ読み込み時にaタグをボタンとしてレンダリングしているので、指定したツイート内容をレンダリング後に変更するなんてことはできません。
でも、動的にツイート内容を変えたいと思うことはあるでしょう。
例えばjsで作ったゲームのスコアをツイート内容に含めたいとか。ページ表示時(=ボタンのレンダリング時)にはゲームのスコアはわからないから、ツイート内容を決められないわけです。
で、どうやるかを覚書。といってもここに総てが書いてある。
https://dev.twitter.com/discussions/6860
widget.jsというのがレンダリングをしてくれてるらしいので、その中に以下のメソッドを使えば再レンダリングしてくれる。
twttr.widgets.load()
なので、ツイートボタンを表示したい段階で以下のようにフォーマットに沿ったaタグをappendしてloadする。
$("tweetButtonWrapper").html('<a href="https://twitter.com/share" class="twitter-share-button" data-via="shim0mura" data-text="スコアは'+ score + '点でした。" data-lang="ja">ツイート</a>') twttr.widgets.load()