Как я могу подтвердить, что намерение в Твиттере было отправлено?

Я хотел бы подтвердить, что пользователь написал в Твиттере после нажатия кнопки " Твиттер". Как я могу сделать это?

Пример:

<a href="https://twitter.com/intent/tweet?text=Simple+Web+Intent">Tweet</a>

Предполагая, что анонимный пользователь * щелкает эту ссылку и твиты, как я могу это подтвердить?

В идеале я хотел бы получить ссылку на твит.


* anonymous как в не аутентифицированы на моем сайте и не зная их имя пользователя Twitter

3 ответа

Обновить

Это решение больше не работает после того, как Twitter обновил поведение виджетов. Вы можете отслеживать только, если кнопка твита была нажата сейчас, а не если твит был действительно опубликован.


Вы можете отслеживать твиты с помощью прослушивателя событий twttr.events.bind из API Twitter. Рабочий пример отслеживания твитов можно найти здесь: http://jsfiddle.net/EZ4wu/3/

HTML:

<a href="https://twitter.com/intent/tweet?url=https://www.webniraj.com/2012/09/11/twitter-api-tweet-button-callbacks/&text=Twitter+API:+Tweet+Button+Callbacks"><i class="icon-twitter-sign icon-white"></i> Tweet</a>

JavaScript:

function reward_user( 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', reward_user);
});

Мое предыдущее решение устарело и больше не работает.

Попробуй это:

                        twttr.events.bind('loaded', function(event) {

                            window.location = "http://theredirect_link.com"

                        });

@Niroj ответ больше не работает. Они обновили API, поэтому слушатель события срабатывает сразу после того, как пользователь нажмет кнопку - у вас нет возможности проверить, действительно ли он написал в Твиттере.

Если вы создаете окно самостоятельно (без использования виджетов Twitter), вы можете по крайней мере определить, было ли окно закрыто (либо пользователь закрыл его, либо написал в Твиттере).

Не связывайте виджеты API!

HTML:

<a id="twitter-intent" href="https://twitter.com/intent/tweet?url=https://www.webniraj.com/2012/09/11/twitter-api-tweet-button-callbacks/&text=Twitter+API:+Tweet+Button+Callbacks"><i class="icon-twitter-sign icon-white"></i> Tweet</a>

JS:

document.getElementById('twitter-intent').addEventListener('click', function(e) {

    e.preventDefault();
    e.stopPropagation(); //this should do in case you don't want to unlink twitter widgets api

    var width  = 575,
        height = 400,
        left   = (screen.width  - width)  / 2,
        top    = (screen.height - height) / 2,
        url    = this.href,
        opts   = 'status=1' +
                 ',width='  + width  +
                 ',height=' + height +
                 ',top='    + top    +
                 ',left='   + left;

    var win = window.open(url, 'twitter_share', opts);

    var timer = setInterval(checkWin, 500);

    function checkWin() {

        if (win.closed) {
            //just assume the user tweeted (he could just close the window without tweeting)
            alert("Thank you for tweeting!");   
            clearInterval(timer);

        }

    }

});
Другие вопросы по тегам