通过Facebook API删除Facebook消息?

问题描述 投票:3回答:2

是否有一种方法可以检索所有具有read_mailbox权限的Facebook消息ID,然后将其全部删除?每个人都在抱怨删除聊天/消息历史记录有多么困难。想知道是否有编写此应用程序的简便方法。

http://developers.facebook.com/docs/reference/api/message/

facebook messages
2个回答
1
投票

通常,您会向https://graph.facebook.com/messageID?access_token=发出HTTP DELETE调用...但是,这似乎是一个API调用,该调用要么需要Facebook的特殊白名单,要么目前不支持,因为它目前无法正常工作并返回“不支持删除请求。“


0
投票

安装https://chrome.google.com/webstore/detail/jquerify/gbmifchmngifmadobkcpijhhldeeelkc

使用https://mbasic.facebook.com/messages/?_rdr

使用您安装的jQueryify扩展名启用jQuery。然后转到您的chrome开发者工具>源>代码段并创建一个新代码段,然后粘贴以下代码并运行它。

// Code snippet for facebook messages removing:

var WHITELISTED_USERS_X = [];
function removeElement(elementId) {
    // Removes an element from the document
    var element = document.getElementById(elementId);
    if (element) {
        element.parentNode.removeChild(element);
    }
}

function addElement(parentId, elementTag, elementId, html) {
    // Adds an element to the document
    //     removeElement
    removeElement(elementId);
    var p = document.getElementById(parentId);
    var newElement = document.createElement(elementTag);
    newElement.setAttribute('id', elementId);
    newElement.innerHTML = html;
    if (p) {
        p.appendChild(newElement);
    } else {
        var body = document.getElementsByTagName("body")[0]
        body.appendChild(newElement);
    }

}
addElement("body", "div", "123x", "hello World23");
console.log(`getOlderMessagesLink()`);
console.log(getOlderMessagesLink());
var aLinks = document.querySelectorAll('h3 a'), i;

for (i = 0; i < aLinks.length; ++i) {
    let currentLink = aLinks[i];
    currentLink.style.color = currentLink.style.color == "black" ? "red" : "green";

    $.get( currentLink.href, function( data ) {

    getPayload1(currentLink.href).then(payLoad=>{
    let abLink = currentLink.href;
    let deleteApiLink = abLink.split('?').pop().split('&');
    deleteApiLink.splice(1 , 0, `tids=${deleteApiLink[0].split('=').pop()}`)
    deleteApiLink = deleteApiLink.join("&").split("#").shift();    
    const apiLink = `https://mbasic.facebook.com/messages/action_redirect?` + deleteApiLink;

    $.post(apiLink, payLoad ).done(function( data ) {
    let mydeletehref = findInParsed(data, "a:contains('Delete')");
    const username = currentLink.innerText;
    const deleteLink = mydeletehref.href;
    if(WHITELISTED_USERS_X.indexOf(username) == -1){
        // console.log(`${username}: ${deleteLink}`);
        insertDeleteLinkInUser(username, deleteLink);
    }

  });


    });
      })

}
function getPayload1(link){
    return new Promise(resp=>{
        $.get(link, function( html1 ) {
        let fbDtsg = findInParsed(html1, "input[name='fb_dtsg']");
        let jazoest = findInParsed(html1, "input[name='jazoest']");
        resp ({
            "fb_dtsg": fbDtsg.value,
            "jazoest": jazoest.value,
            "delete": "Delete"
        })
    }); 
    })
}
function findInParsed(html, selector){
    return $(selector, html).get(0) || $(html).filter(selector).get(0);
}
function getOlderMessagesLink(html = false){
    if(html){
        return $("#see_older_threads").find("a").get(0).href;
    }
    let selector = "#see_older_threads";
    return $(selector, html).find("a").get(0).href || $(html).filter(selector).find("a").get(0).href;
}
function insertDeleteLinkInUser(username, link){
    $("a:contains('" + username + "')").parent().parent().parent().prepend('<a href="' + link + '" style="color:red; padding:5px;" target="_blank">DELETE ME</a>');
}
© www.soinside.com 2019 - 2024. All rights reserved.