2011-02-09 5 views
30

Twitter의 Tweet 버튼에 콜백을 등록하는 방법이 있습니까? 내 사이트의 어떤 특정 사용자가 링크를 트윗했는지 추적 할 수 있기를 원합니다. onClick 이벤트는 도메인 간 iFrame이기 때문에 추가 할 수 없습니다. 다른 아이디어?Twitter의 Tweet 버튼에 대한 콜백이 있습니까?

나는 one way to do it을 보았지만 믿을만한 것처럼 보입니다. Their documentation에는 아무 것도 언급되어 있지 않으므로 해결 방법에 대한 도움을 찾고 있습니다.

답변

45

트위터 loaded, rendered, resize, tweet, follow, retweet, likeclick에 대한 Web Intent events 있습니다.

twttr.events.bind(
    'tweet', 
    function (event) { 
    // Do something there 
    } 
); 

인해 이벤트가 완료된 후 발생하는 콜백의 unreliableness 2015 년 가을에 behavior was changed.

사용자가 조치를 완료 한 후에 사용자가 페이지에서 조치를 호출하면 트리거됩니다.

Example loading widgets.js

:

<script> 
// Performant asynchronous method of loading widgets.js 
window.twttr = (function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0], 
    t = window.twttr || {}; 
    if (d.getElementById(id)) return t; 
    js = d.createElement(s); 
    js.id = id; 
    js.src = "https://platform.twitter.com/widgets.js"; 
    fjs.parentNode.insertBefore(js, fjs); 

    t._e = []; 
    t.ready = function(f) { 
    t._e.push(f); 
    }; 

    return t; 
}(document, "script", "twitter-wjs")); 
</script> 

<script> 
// Wait until twttr to be ready before adding event listeners 
twttr.ready(function (twttr) { 
    twttr.events.bind('tweet', function(event) { 
    console.log(event); 
    }); 
}); 
</script> 
+3

텐트는 실제로 이동하는 방법 : 아래의 코드를 참조하십시오. 매력처럼 작동합니다. – montrealist

+0

예를 들어 James Lawruk의 답변을 확인하십시오. – severin

+0

IE의 Web Intent 이벤트에 문제가있는 사람은 누구입니까? –

23

난 그냥 트윗 콜백 이벤트를 구현했습니다.

트위터의 콜백 이벤트에 대한 자세한 내용
- Twitter Web Intents
- Web Intents Javascript Events

자바 스크립트 콜백

$.getScript("http://platform.twitter.com/widgets.js", function(){ 
    function handleTweetEvent(event){ 
    if (event) { 
     alert("This is a callback from a tweet") 
    } 
    } 
    twttr.events.bind('tweet', handleTweetEvent);   
}); 

트윗 버튼 : 예, 콜백 함수가

<a href="http://twitter.com/intent/tweet?url=http://test.com;via=stack">twitter</a> 
+2

나는이 대답을 codepen 형식으로 만들었습니다 http://codepen.io/anon/pen/Zbwqyx?editors=101 – illusionist

-3
<a href="https://twitter.com/IamAnessaReyes" class="twitter-follow-button" data-show-count="false">Follow @IamAnessaReyes</a> 
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> 
+3

코드 전용 답변이 좋지 않습니다. 설명을 추가해야합니다. –

4

, 당신은 트윗 이벤트에 콜백 함수를 바인딩 할 수 있습니다.

<a href="https://twitter.com/intent/tweet?url=http://yoursite.com/about&text=Message">Twitter</a> 

<script>   
//Twitter Widgets JS 
window.twttr = (function (d,s,id) { 
var t, js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; 
js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); 
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } }); 
}(document, "script", "twitter-wjs")); 

//Once twttr is ready, bind a callback function to the tweet event 
twttr.ready(function(twttr) {  
    twttr.events.bind('tweet', function (event) { 
     console.log('tweet, tweet'); 
    }); 
}); 
</script> 
+0

콜백이 트윗의 내용을 가져올 수있는 방법이 있습니까? 또는 그것을 얻는 적절한 방법은 무엇입니까? 감사. – ialphan

+0

좋은 질문입니다. 나는 모른다. –

+0

대답은 '아니오'인 것처럼 보입니다. https://twitter.com/kurrik/status/433752897730256897. 나는 @ abraham의 twitteroauth가 갈 길이라고 생각한다. 감사. – ialphan

0
function loguser(event) { 
    if (event) { 
     alert('Tweeted'); 
     console.log(event); 
    } 
} 

window.twttr = (function (d,s,id) { 
    var t, js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 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: function(f){ t._e.push(f) } }); 
    }(document, "script", "twitter-wjs")); 

twttr.ready(function (twttr) { 
    twttr.events.bind('tweet', loguser); 
}); 

Working Example

관련 문제