So it turns out to delete a Facebook group it must have no admins, and no members, which seems kinda silly. So I found this JavaScript to Mass Remove Facebook Group Members and tweaked it a bit so it worked, it takes multiple runs to go through a large group – but in the end it got the job done and I could delete the group.
Offical from Facebook:
If you’ve created a group, you can delete the group by removing all its members and then yourself. To delete a group: Go to the group you want to delete and click Members below the cover photo. Click next to each member’s name and select Remove from Group.
How do I delete a group? | Facebook Help Center | Facebook
The below code can help you with that, make sure you edit the excludedFbIds and enter your own Facebook ID so it doesn’t delete you first. You can find it here: https://findmyfbid.com/
It works fine in Firefox, so edit it, then paste in the JavaScript console and run it. It might have errors sometimes and hang or pause, just reload the page and execute it again. I did a fairly big group with a few thousand members and it cleaned them all out eventually.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
var deleteAllGroupMembers = (function () { var deleteAllGroupMembers = {}; // the facebook ids of the users that will not be removed. // IMPORTANT: add your own facebook id here so that the script will not remove yourself! var excludedFbIds = ['123456789','11223344']; // make sure each id is a string! var usersToDeleteQueue = []; var scriptEnabled = false; var processing = false; deleteAllGroupMembers.start = function() { scriptEnabled = true; deleteAll(); }; deleteAllGroupMembers.stop = function() { scriptEnabled = false; }; function deleteAll() { if (scriptEnabled) { queueMembersToDelete(); processQueue(); } } function queueMembersToDelete() { var adminActions = document.getElementsByClassName('adminActions'); console.log(excludedFbIds); for(var i=0; i<adminActions.length; i++) { var gearWheelIconDiv = adminActions[i]; var hyperlinksInAdminDialog = gearWheelIconDiv.getElementsByTagName('a'); var fbMemberId = gearWheelIconDiv.parentNode.parentNode.id.replace('member_',''); var fbMemberName = getTextFromElement(gearWheelIconDiv.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByClassName('fcb')[0]); if (excludedFbIds.indexOf(fbMemberId) != -1) { console.log("SKIPPING "+fbMemberName+' ('+fbMemberId+')'); continue; } else { usersToDeleteQueue.push({'memberId': fbMemberId, 'gearWheelIconDiv': gearWheelIconDiv}); } } } function processQueue() { if (!scriptEnabled) { return; } if (usersToDeleteQueue.length > 0) { removeNext(); setTimeout(function(){ processQueue(); },1000); } else { getMore(); } } function removeNext() { if (!scriptEnabled) { return; } if (usersToDeleteQueue.length > 0) { var nextElement = usersToDeleteQueue.pop(); removeMember(nextElement.memberId, nextElement.gearWheelIconDiv); } } function removeMember(memberId, gearWheelIconDiv) { if (processing) { return; } var gearWheelHref = gearWheelIconDiv.getElementsByTagName('a')[0]; gearWheelHref.click(); processing = true; setTimeout(function(){ var popupRef = gearWheelHref.id; var popupDiv = getElementByAttribute('data-ownerid',popupRef); var popupLinks = popupDiv.getElementsByTagName('a'); for(var j=0; j<popupLinks.length; j++) { if (popupLinks[j].getAttribute('href').indexOf('remove.php') !== -1) { // this is the remove link popupLinks[j].click(); setTimeout(function(){ var confirmButton = document.getElementsByClassName('layerConfirm uiOverlayButton selected')[0]; var errorDialog = getElementByAttribute('data-reactid','.4.0'); if (confirmButton != null) { if (canClick(confirmButton)) { confirmButton.click(); } else { console.log('This should not happen memberid: '+memberId); 5/0; console.log(gearWheelIconDiv); } } if (errorDialog != null) { console.log("Error while removing member "+memberId); errorDialog.getElementsByClassName('selected layerCancel autofocus')[0].click(); } processing = false; },700); continue; } } },500); } function canClick(el) { return (typeof el != 'undefined') && (typeof el.click != 'undefined'); } function getMore() { processing = true; more = document.getElementsByClassName("pam uiBoxLightblue uiMorePagerPrimary"); if (typeof more != 'undefined' && canClick(more[0])) { more[0].click(); setTimeout(function(){ deleteAll(); processing = false; }, 2000); } else { deleteAllGroupMembers.stop(); } } function getTextFromElement(element) { var text = element.textContent; return text; } function getElementByAttribute(attr, value, root) { root = root || document.body; if(root.hasAttribute(attr) && root.getAttribute(attr) == value) { return root; } var children = root.children, element; for(var i = children.length; i--; ) { element = getElementByAttribute(attr, value, children[i]); if(element) { return element; } } return null; } return deleteAllGroupMembers; })(); deleteAllGroupMembers.start(); // stop the script by entering this in the console: deleteAllGroupMembers.stop(); |
And that’s it, just keep running it and you’ll get there in the end.
Comments are closed.