Twitterの動的生成URLポップアップからコールバックを受け取る

2013.09.17 HTML5/JavaScript 

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

© rettuce.com