Twitterのツイートボタンにコールバックを登録する方法はありますか?私のサイトのどの特定のユーザーがリンクをツイートしたかを追跡したいのですが。クロスドメインのiFrameなので、onClickイベントを追加できません。他のアイデアはありますか?
私は それを行う1つの方法 を見てきましたが、信頼できないようです。 彼らのドキュメント は何も言及していないので、回避策のヘルプを探しています。
Twitterには Web Intentイベント がloaded
、rendered
、resize
、Tweet
、follow
、retweet
、like
、およびclick
。
twttr.events.bind(
'Tweet',
function (event) {
// Do something there
}
);
イベントの完了後に発生するコールバックの信頼性が低いため、2015年の秋に 動作が変更されました 。
アクションが完了した後ではなく、ユーザーがページでアクションを呼び出したときにトリガーされるようになりました。
<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>
Tweetコールバックイベントを実装しました。
Twitterのコールバックイベントの詳細
- Twitter Web Intents
- Web Intents Javascript Events
JavaScriptコールバック
$.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>
Twitter Widgets JSをロードすると、ツイートイベントにコールバック関数をバインドできます。以下のコードを参照してください。
<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>
はい、コールバック関数があります。カスタムTwitterボタンの場合も同様です。あなたはそれをここで見つけることができます: https://dev.Twitter.com/discussions/671
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);
});