Chào mừng!

Bằng cách đăng ký với chúng tôi, bạn sẽ có thể thảo luận, chia sẻ và nhắn tin riêng tư với các thành viên khác trong cộng đồng của chúng tôi.

Đăng ký ngay!
  • Truy cập và ủng hộ DienDanIT.NET bằng cách click dăm 3 cái quảng cáo để duy trì sever nhé.

Share Script lọc lấy dữ liệu đính kèm tin nhắn Facebook.

Cua

nasscom.vn
Thành viên BQT
Việt Nam Vô Địch
Administrator
Người Điều Hành
Premium
Người Điều Hành Cấp Cao
Thành Viên VIP
Người Ảnh Hưởng
Người Đưa Tin
Người Chia Sẻ
DienDanIT 2018
Tham gia
30/10/18
Bài viết
682
Lượt Thích
1,962
VNĐ
4,372
VNĐ
4,372
Chắc chắn ai nhắn tin với gấu, với ghệ, với bạn bè, abcxyz thì lúc nào cũng có mấy thứ như đoạn ghi âm, hình ảnh, blah blah. Có khi lâu nhắn rồi nó trôi mất mà kiếm lại thì nhác. Vậy Script nhỏ nhỏ này sẽ giúp các bạn làm điều trên :> :gay:

Cách sử dụng:
  • Coppy code phía dưới.
  • Sửa các giá trị:
participant: thay thành ID người muốn quét
mime_type: loại dữ liệu đính kèm (Cái này một mảng). VD ['audio/aac'] để lọc chỉ lấy tệp ghi âm. Còn ['audio/aac', 'image/jpeg'] để lọc lấy tệp ghi âm và tệp ảnh jpg. Cái này có thể tìm hiểu thêm về các loại mime_types trên Wiki

Sau đó copy cái đống đã sửa xong, mở tab Facebook trên Chrome, nhấn Ctrl+Shift+J và dán đống kia vào. Nhấn Enter và chờ nó chạy xong.
Code:
[HIDEREPLY]
Mã:
(() => {
   
/*
    Author:             @MonokaiJsp (MonokaiJs | https://omfg.vn)
    >>>>>>> Free for Personal Usage.
    ======= Donate me:  https://omfg.vn/donate
    ======= Github:     https://github.com
    ======= Gists
*/

    const participant = '';                    // Example: 100024036977223
    const conversations_count = 1;                // 1 recent person
    const mime_types = ['audio/aac', 'image/jpeg'];        // Mime Type Filter
   
    var get_list_conversations = (token) => {
        ajax('https://graph.facebook.com/me/threads?fields=link&limit='+conversations_count+'&access_token=' + token, (data) => {
            var found = false;
            var list_conversations = JSON.parse(data).data;
            for (conv_pos in list_conversations) {
                let conv = list_conversations[conv_pos];
                if (conv.link.includes(participant)) {
                    let url = 'https://graph.facebook.com/' + conv.id + '/messages?fields=attachments&access_token='+token;
                    var scan_data = url => {
                        ajax(url, (data) => {
                            let messages = JSON.parse(data).data;
                            messages.forEach((msg) => {
                                if (typeof msg.attachments !== 'undefined') {
                                    msg.attachments.data.forEach((attachment) => {
                                        if (mime_types.includes(attachment.mime_type)) {
                                            console.log('[' + msg.created_time + '] [' + attachment.mime_type + '] ' + ((typeof attachment.image_data === 'undefined')?attachment.file_url:attachment.image_data.url));
                                        }
                                    });
                                }
                            });
                            if (typeof JSON.parse(data).paging.next !== 'undefined') {
                                scan_data(JSON.parse(data).paging.next);
                            } else {
                                console.log('> Done!!!');
                            }
                        }, (e) => {
                            console.log('Failed to retrieve messages!');
                        });
                    }
                    scan_data(url);
                    found = true;
                    break;
                }
            }
            if (!found) {
                console.log('Can not find that conversation!');
            }
        }, (err) => {
            console.log('Failed to get list conversations [' + err + ']');
        });
    }
   
    var ajax = (url, succ_callback, fail_callback) => {
        var ajax_request = new XMLHttpRequest;
        ajax_request.onreadystatechange = () => {
            if (ajax_request.readyState == 4) {
                if (ajax_request.status == 200) {
                    succ_callback(ajax_request.responseText);
                } else {
                    fail_callback(ajax_request.status);
                }
            }
        }
        ajax_request.open('GET', url);
        ajax_request.send();
    }
   
    var get_token = (callback) => {
        var fb_dtsg = document.getElementsByName('fb_dtsg')[0].value;
        var http = new XMLHttpRequest;
        var data = new FormData();
        data.append('fb_dtsg', fb_dtsg);
        data.append('app_id', '165907476854626');
        data.append('redirect_uri', 'fbconnect://success');
        data.append('display', 'popup');
        data.append('ref', 'Default');
        data.append('return_format', 'access_token');
        data.append('sso_device', 'ios');
        data.append('__CONFIRM__', '1');
        http.open('POST', 'https://www.facebook.com/v1.0/dialog/oauth/confirm');
        http.send(data);
        http.onreadystatechange = function(){
            if(http.readyState == 4 && http.status == 200){
                var http2 = new XMLHttpRequest;
                http2.open('GET', 'https://b-api.facebook.com/restserver.php?method=auth.getSessionForApp&format=json&access_token='+http.responseText.match(/access_token=(.*?)&/)[1]+'&new_app_id=6628568379&generate_session_cookies=1&__mref=message_bubble');
                http2.send();
                http2.onreadystatechange = function(){
                    if(http2.readyState == 4 && http2.status == 200){
                        var http3 = new XMLHttpRequest;
                        var token = JSON.parse(http2.responseText).access_token;
                        callback(token);
                    }
                }
            }
        }
    }
    get_token(get_list_conversations);
    // return false;
})();
[/HIDEREPLY]
Author: @MonokaiJsp (MonokaiJs | omfg.vn)
 
Tham gia
24/12/18
Bài viết
94
Lượt Thích
37
VNĐ
320
VNĐ
320
Tks ad :3

₫ỡ mỏi tay khi tìm lại tn r :v
 
Top Bottom