Tự động thả tim khi gái livestream trên facebook
TIL
500
livestream
2
facebook
17
thả tim
1
White

Nghiêm Tiến Viễn viết ngày 10/05/2017

Livestream đã và đang là chuyện hằng ngày hằng giờ trên các mạng xã hội. Những bài viết livestream được ưu tiên hiển thị nhiều hơn so với những bài viết thông thường. Có 1 cái vui khi livestream trên Facebook đó là tính năng reaction, bạn có thể bấm nhiều lần vào các icon để tạo hiệu ứng tim bay
Thả tim trên livestream khá là vui mắt và thu hút người xem gostream.vnThả tim trên livestream khá là vui mắt và thu hút người xem. Tương truyền rằng nếu người nào thả tim lên clip của chị em đang livestream từ đầu buổi đến cuối buổi sẽ giành được trái tim nàng ;)

Viết code tự động thả tim

Đây là code mình đang dùng cho trang http://gostream.vn , một dự án về livestream mình mà mới launch cách đây 2 tháng. Sau 1 thời gian tìm hiểu thì mình thấy khả năng fake request để gửi reaction lên khá là khoai, vì nó truyền nhiều tham số mà ngồi mò để biết từng tham số nó sinh ra như thế nào thì cũng tốn thời gian lắm. Nên mình chọn cách đơn giản hơn, fake browser để tự động click vào mấy cái icon kia. Browser mình sử dụng là PhantomJS
Tư tưởng của script là (1) login vào facebook sử dụng tài khoản có sẵn, (2) tới trang có video và click liên tục vào các biểu tượng icon để tạo hiệu ứng.

1. Đăng nhập facebook

Đăng nhập facebook có 2 cách, 1 là fake đăng nhập, 2 là dùng cookie có sẵn từ 1 máy đã đăng nhập. Mình sẽ hướng dẫn các bạn cách khó hơn, fake đăng nhập.

page.open("http://www.facebook.com/login.php", function(status) {
    if (status === "success") {
        page.onConsoleMessage = function(msg, lineNum, sourceId) {
            console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
        };
        page.evaluate(function(args) {
            console.log('login as '+args[1]);
            document.getElementById("email").value = args[1];
            document.getElementById("pass").value = args[2];
            document.getElementById("loginbutton").click();
            // page is redirecting.
            console.log("logged in");
        }, args);
    }
});

Ủa có nhiêu đây thôi sao mà bảo khó ^^! Code login quả thực chỉ đơn giản vậy thôi. Nhưng cái khó là nếu bạn chạy code này trên server thì nhiều khả năng sẽ dính checkpoint của Facebook. Đơn giản vì bạn login bằng 1 IP xa lạ nên Facebook cần xác nhận lại đó có đúng là bạn không. Mà cái xác thực đó thì cũng rắc rối. Mình sẽ hướng dẫn các bạn trong 1 bài khác. Cách đơn giản hơn là các bạn dùng cookie đã có trên trình duyệt đăng nhập sẵn rồi truyền vào PhantomJS

phantom.addCookie({
    'name': 'mycookie',
    'value': 'something really important',
    'domain': 'example.com'
})
page.open('http://www.facebook.com', function() {
    console.log(page.cookies);
})

2. Tự động thả tim

Sau khi đã login vào rồi thì thả tim thôi. Khi tới trang chứa video, phần nút Like sẽ như sau
alt text

Cần giả sự kiện di chuột vào nút Thích để nó hiện như sau
alt text

Nút Like cần tìm có class là UFILikeLink index 0

page.open(url, function(status) {
    page.evaluate(function() {
        var ev = document.createEvent('MouseEvent');
        ev.initMouseEvent(
                'mouseover',
                true /* bubble */, true /* cancelable */,
                window, null,
                0, 0, 0, 0, /* coordinates */
                false, false, false, false, /* modifier keys */
                0 /*left*/, null
        );
        if ( document.getElementsByClassName('UFILikeLink').length ) {
            document.getElementsByClassName('UFILikeLink')[0].dispatchEvent(ev);
        } else 
            console.log('Like button not found');
    });
});

Sau khi đã hiện ra hàng nút rồi thì chỉ việc bấm lên các icon nữa thôi, gọi sự kiện click() của nó là được.

var reactInterval = setInterval(function () {
    if ( document.getElementsByClassName('_iuw').length ) {
        var rand_number = Math.floor(Math.random() * 3);
        document.getElementsByClassName('_iuw')[rand_number].click();
        console.log("reaction "+rand_number);
    } else {
        console.log('React button not found');
        clearTimeout(reactInterval);
    }
}, 1000);

Đoạn script trên lặp sau mỗi 1s , click lên icon ngẫu nhiên trong 3 icon đầu ( class _iuw )

Vậy là xong, chúng ta đã có 1 đoạn script vui vẻ, 1 sự hậu thuẫn vững chắc mỗi khi livestream, mang đi tán gái thì hết xẩy :D Tính năng này bên mình đang miễn phí tại http://gostream.vn bạn nào lười code thì ghé qua dùng được luôn nhé.

Full code : https://github.com/nghiemvien/facebook-auto-reaction
Clip hướng dẫn sử dụng

NghiemTienVien 09-05-2017

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Nghiêm Tiến Viễn

1 bài viết.
4 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
18 2
Một lỗ hổng bảo mật cực kỳ nghiêm trọng, có ảnh hưởng trực tiếp đến quyền riêng tư của khoảng 1 tỷ tài khoản Facebook và có khả năng ảnh hưởng tới ...
Hùng PV viết 1 năm trước
18 2
White
27 4
(Ảnh) Phân tích mã độc Facebook lây lan qua tin nhắn và hướng dẫn cách ngăn chặn mã độc Facebook tự động gửi tin nhắn cho toàn bộ bạn bè. Phân t...
Juno_okyo viết hơn 1 năm trước
27 4
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
1 bài viết.
4 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!