twitterのURLとかテキストを動的に生成してintentページにポップアップさせて、
シェアしたらコールバック処理させたい時のメモ。
※ jQuey, coffeescript使用
// coffee
# twitter setup
window.twttr = do (d=document,s="script",id="twitter-wjs") ->
t = js = fjs = d.getElementsByTagName(s)[0]
return if d.getElementById(id)
js = d.createElement(s); js.id = id; js.src = "//platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs)
return window.twttr || (t = { _e:[], ready: readyFunc=(f) -> t._e.push(f)});
# jQuery init
$ ->
tweetBtnSetup()
twttr.ready(twReady)
$('#tweetBtnTransparence').click ->
twPopup("@rettuce hello :)","http://lab.rettuce.com/tweetcallback/");
return
tweetHandler = (e) ->
console.log "tweet complete."
return
twReady = (twttr) ->
twttr.events.bind('tweet', tweetHandler)
return
twPopup = (txt,url) ->
twUrl = "http://twitter.com/intent/tweet?url="+encodeURIComponent(url)+"&text="+encodeURIComponent(txt)+"&count=none&source=tweetbutton";
document.getElementById("tweetBtnTransparence").href = twUrl;
return
tweetBtnSetup = () ->
a = $("<a>").attr("id","tweetBtnTransparence").html("tweet popup")
$("body").append( a )
return
window.opendで//twitter.com/intent/tweet 呼び出しても
コールバックイベント捕まえられないので
aタグ生成してそいつのhrefパラメータに動的urlを後付けするってやり方。
flashとかからはExternalInterfaceでtwPopupを呼び出して疑似click()で押せばおk。
サンプルはこちら。
http://lab.rettuce.com/tweetcallback/
you