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