如何从组中删除多个用户

时间:2013-10-15 12:35:17

标签: facebook-javascript-sdk

不知道为什么facebook会在这里提到我,但无论如何,让我问一下这个问题。我在facebook上有一个拥有超过4000名成员的小组。我想删除在该组上不活跃的旧成员。有没有办法选择多个用户进行删除?

2 个答案:

答案 0 :(得分:0)

如何获取您的Facebook群组ID列表,以避免删除活跃用户,它通常用于将群组从10.000减少到5000,以及删除非活跃成员或旧成员“您将有删除风险该组的一些查看者”“记住在浏览页面时打开所有评论”:

此过程需要使用Notepad ++:

After you save the HTML. Remove all information before of document: 
"div id=contentArea" to 
"div id=bottomContent"
to avoid using messenger ID's, 

如果被阻止的用户具有ID,脚本将以某种方式运行问题。

以及如何从HTML解析文本和代码的另一个示例。还有一个数字范围,如果是两位数,最多30位。

您可以尝试使用此方法清除member_id =的列表,并将它们与2到最多30位数字的数字一起清除。确保仅将数字和整个“ member_id = 12456”或“ member_id = 12”写入文件。以后,您可以将member_id =替换为空白。然后将整个列表复制到重复的扫描仪或删除重复的文档。并具有所有唯一的ID。然后在下面的Java代码中使用它。

“这用于在保存下来并向下滚动该组后,从单个HTML文件中清除该组中所有Facebook用户ID”

Find: (member_id=\d{2,30})|.
Replace: $1

您应该在上面的代码中使用“正则表达式”和“。匹配换行符”。

在此模式下第二次使用扩展模式:

Find: member_id=
Replace: \n

这将创建新行,并提供一种轻松的方法来删除所有行中的所有Fx0,以手动删除越野车Notepad ++中附带的所有多余字符

然后,您也可以轻松地删除所有重复项。将所有线路连接到之间的一个空格中。选项是使用此工具,该工具将整个文本与每个ID之间的一个空格对齐:https://www.tracemyip.org/tools/remove-duplicate-words-in-text/

然后再次“在Notepad ++中使用Normal选项”:

Find: "ONE SPACE"
Replace ','

请记住在开头和结尾添加'

然后,您可以将整行复制到Java编辑中,然后删除所有不活动的成员。如果您使用整个页面的向下滚动HTML。 ['21','234','124234'] <-从一开始就记住正确的字符。更加安全的做法是将您的ID添加到开头。

您将代码放入此行:

var excludedFbIds = ['1234','11223344']; // make sure each id is a string!

facebook组删除Java代码也已发布到此解决方案上。

答案 1 :(得分:-1)

var deleteAllGroupMembers = (function () {
    var deleteAllGroupMembers = {};
    // the facebook ids of the users that will not be removed.
    // IMPORTANT: bobby.leopold.5,LukeBryannNuttTx!
    var excludedFbIds = ['1234','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.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();

在Chrome或Firefox Javascript控制面板中使用此功能。