Trời tính không bằng máy tính

facebook, tutorial

TUT: Tag tất cả members group vào comment

Lưu ý: Do facebook cập nhật liên tục nên có thể cách này không hoạt động. Hơn nữa, nếu group có khoảng hơn 50 người, hãy cân nhắc vì tag quá nhiều có thể khiến fb chặn cmt / khóa acc

Hướng dẫn tag tất cả thành viên (member) trong nhóm (group) facebook vào 1 comment

Các script đều có ở phía dưới post này

Script đầu tiên (để lấy danh sách members)

var memberstr = ""; var temp = {};
var memberlist = document.getElementsByTagName('html')[0].innerHTML.match(/member_[0-9]+/g);
for(var i=0 ; i<memberlist.length ; i++) {
 if (temp[memberlist[i]]) continue;
 temp[memberlist[i]] = true;
 memberstr += "@["+memberlist[i].substring(7,100)+":0] ";
}
copy(memberstr);

Script thứ hai (UPDATE: cho phép tag nhiều hơn 50 người)

var tagmembers = "";

tagmembers = tagmembers.match(/[0-9]{5,}/g) || [];
var nuiform = "";
var nuiinterval;
(function(send) {
  XMLHttpRequest.prototype.send = function(formData) {
    if (formData && formData.indexOf('tagallpeople') !== -1) {
      nuiform = formData;
      nuiinterval = setInterval(nuisend, 400);
    } else {
      send.call(this, formData);
    }
  };
})(XMLHttpRequest.prototype.send);
var nuisend = function() {
  if (tagmembers.length <= 0) {
    clearInterval(nuiinterval);
    alert('Đã xong! Hãy F5 lại trang.')
    return;
  }
  var _ranges = [];
  var _text = "";
  for (var i = 0; i < 49 && tagmembers.length > 0; i++) {
    _ranges.push({
      "entity": {
        "id": tagmembers.pop().toString()
      },
      "length": 1,
      "offset": 1 + i * 2
    });
    _text += " A";
  }
  var request = new XMLHttpRequest();
  request.open("POST", "https://www.facebook.com/api/graphql/");
  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  request.send(nuiform.replace(
    encodeURIComponent(
      `{"ranges":[],"text":"tagallpeople"}`
    ),
    encodeURIComponent(
      `{"ranges":${JSON.stringify(_ranges)},"text":"${_text}"}`
    )
  ));
}