Hướng dẫn lấy Token Facebook full quyền 02/2019

29 Likes 1 Comment
fb_token_2019_thumbnail

Như các bạn đã thấy thì tất cả các cách lấy Token trước đây đều đã bị Facebook fix. Từ cách xem mã nguồn trang Facebook sau khi đăng nhập, hay sử dụng Bookmarklet, hoặc bằng F12 Console (mình cập nhật hồi tháng 10/2018) thì đều đã không còn sử dụng được.

Dưới đây là một số cách lấy Token Facebook cập nhật tháng 02/2019.
Cách 1: Sử dụng email + password.
Cách 2: Không cần password.
Cách 3: Sử dụng extension của Chrome. (Khuyến nghị)


Cách 1

Nguồn: https://www.facebook.com/groups/j2team.community/permalink/870625693269552/

Các bạn mở Console lên (nhấn F12 > chuyển qua tab Console / hoặc có thể nhấn tổ hợp phím Ctrl+Shift+J).

Copy & một trong hai đoạn lệnh dưới đây vào. Các bạn tiến hành thay email + password Facebook của bạn vào 2 dòng đầu tiên.

Đoan code get token bằng cách giả lập đăng nhập bằng Android: get-facebook-token-console-android.js

var email = "youremail";
var password = "yourpassword";

var BASE_URL = "https://api.facebook.com/restserver.php";
var API_SECRET = "62f8ce9f74b12f84c123cc23437a4a32";
var md5 = function(d){result = M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_};

var data = {
    "api_key": "882a8490361da98702bf97a021ddc14d",
    "email": email,
    "format": "JSON",
    "locale": "vi_vn",
    "method": "auth.login",
    "password": password,
    "return_ssl_resources": 0,
    "v": "1.0"
};

var str = "";
for (var key in data){
    if (data.hasOwnProperty(key)) {
        str += key + "=" + data[key];
    }
}
str += API_SECRET;
var sig = md5(str);
data["sig"] = sig;
var params = "";

for (var key in data){
    if (data.hasOwnProperty(key)) {
        params += "&" + key + "=" + data[key];
    }
}

var url = BASE_URL + "?" + params;
var win = window.open(url, '_blank');
win.focus();

Đoan code get token bằng cách giả lập đăng nhập bằng iOS: get-facebook-token-console-ios.js

var email = "youremail";
var password = "yourpassword";

var BASE_URL = "https://api.facebook.com/restserver.php";
var API_SECRET = "c1e620fa708a1d5696fb991c1bde5662";
var md5 = function(d){result = M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_};

var data = {
    "api_key": "3e7c78e35a76a9299309885393b02d97",
    "email": email,
    "format": "JSON",
    "locale": "vi_vn",
    "method": "auth.login",
    "password": password,
    "return_ssl_resources": 0,
    "v": "1.0"
};

var str = "";
for (var key in data){
    if (data.hasOwnProperty(key)) {
        str += key + "=" + data[key];
    }
}
str += API_SECRET;
var sig = md5(str);
data["sig"] = sig;
var params = "";

for (var key in data){
    if (data.hasOwnProperty(key)) {
        params += "&" + key + "=" + data[key];
    }
}

var url = BASE_URL + "?" + params;
var win = window.open(url, '_blank');
win.focus();

Trong link mới mở ra các bạn tìm token của mình nhé. Token có dạng: EAAAA…

Sau khi bạn lấy Token bằng cách này, bạn có thể sẽ gặp phải checkpoint. Tuy nhiên chỉ có lần đầu tiên là bị checkpoint thôi, các lần sau các bạn sẽ lấy được bình thường mà không gặp checkpoint nữa. Các bạn lưu ý rằng sau khi bị checkpoint thì token cũ không sử dụng được nữa. Do đó cần thực hiện lấy token lại một lần nữa. Token này bạn có thể sử dụng thoải mái, đặc biệt là full quyền.


Cách 2

Ở phần trên mình đã giới thiệu đến các bạn cách lấy token, tuy nhiên yêu cầu bạn phải nhập email + password. Đối với các bạn không muốn nhập password thì có thể sử dụng cách dưới đây. Cách này sẽ lấy được token nhưng bị hạn chế khá nhiều quyền.

Nguồn: J2Team Community – Nguyễn Anh Nhân

  • Copy đoạn code ở phía dưới.
  • Vào Facebook, nhấn tổ hợp phím Ctrl+Shift+J để mở F12 Console.
  • Paste đoạn code đã copy, chờ lấy token thôi.

Đoạn code get token không cần password: fb_token_no_pass.js

(() => {
    var GetToken = (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','124024574287414');
        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', '/v1.0/dialog/oauth/confirm');
        http.send(data);
        http.onreadystatechange = function(){
            if(http.readyState == 4 && http.status == 200) callback(http.responseText.match(/access_token=(.*?)&/)[1]);
        }
    }
    GetToken(console.log);
})();

Trong trường hợp bạn không dùng được:
B1: Truy cập link này: 
http://bit.ly/2TlLQK0.
B2: Nhấn Chấp thuận việc cấp quyền.
B3: Quay lại và thực hiện lại các bước trên hướng dẫn sử dụng.

Tương tự với cách đầu tiên, khi sử dụng đoạn mã trên lần đầu thì có thể sẽ bị checkpoint. Tuy nhiên từ các lần sau trở đi sẽ không bị checkpoint nữa nhé.


Cách 3

Mình cũng muốn giới thiệu thêm một cách nữa đó là sử dụng Chrome extension. Mình thấy cách này rất tiện lợi cũng như có khá nhiều tính năng hay cho Facebook.

Multiple Tools for Facebook: https://chrome.google.com/webstore/detail/multiple-tools-for-facebo/eojdckfcadamkapabechhbnkleligand

B1: Các bạn nhấn vào icon của extension để truy cập vào trang Dashboard.

B2: Nhấn vào menu ACCESS TOKEN bên trái. Trang web sẽ tự động copy token vào clipboard.

Token bạn lấy được ở đây là token full quyền nhé. Đặc biệt là cách lấy token này không bị checkpoint.
Dưới đây là một số chức năng khác của extension.

Chúc các bạn thành công.

You might like

About the Author: Sharescript.net

1 Comment

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *