javascript 删除松弛的公共/私人频道消息。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 删除松弛的公共/私人频道消息。相关的知识,希望对你有一定的参考价值。

var https = require('https');

// CONFIGURATION #######################################################################################################

var token          = 'SLACK TOKEN';
var channel        = 'CHANNEL ID';
var privateChannel = false;
var delay          = 300; // delay between delete operations in millisecond

// GLOBALS #############################################################################################################

var channelApi    = privateChannel ? 'groups' : 'channels';
var baseApiUrl    = 'https://slack.com/api/';
var historyApiUrl = baseApiUrl + channelApi + '.history?token=' + token + '&count=1000&channel=' + channel;
var deleteApiUrl  = baseApiUrl + 'chat.delete?token=' + token + '&channel=' + channel + '&ts='
var messages      = [];

// ---------------------------------------------------------------------------------------------------------------------

function deleteMessage() {

    if (messages.length == 0) {
        return;
    }

    var ts = messages.shift();

    https.get(deleteApiUrl + ts, function (res) {

        var body = '';

        res.on('data', function (chunk) {
            body += chunk;
        });

        res.on('end', function(){
            var response = JSON.parse(body);

            if (response.ok === true) {
                console.log(ts + ' deleted!');
            } else if (response.ok === false) {
                messages.push(ts);
            }

            setTimeout(deleteMessage, delay);
        });
    }).on('error', function (e) {
        console.log("Got an error: ", e);
    });
}

// ---------------------------------------------------------------------------------------------------------------------

https.get(historyApiUrl, function(res) {

    var body = '';

    res.on('data', function (chunk) {
        body += chunk;
    });

    res.on('end', function () {

        var response = JSON.parse(body);
  
        for (var i = 0; i < response.messages.length; i++) {
            messages.push(response.messages[i].ts);
        }

        deleteMessage();
    });
}).on('error', function (e) {
      console.log("Got an error: ", e);
});

以上是关于javascript 删除松弛的公共/私人频道消息。的主要内容,如果未能解决你的问题,请参考以下文章

Slackbot 可以从私人频道中提取消息并在另一个 Slack 频道中发布吗?

使用没有错误消息的私人频道时无法从推送者那里获得响应

公共频道更改为私人频道时无法获取 Slack 频道信息

Zapier Slack 私人频道:仅当用户在频道中时才发送消息

使用机器人从私人消息中自动创建角色和频道的问题

使用 Zapier 集成向 Slack 频道消息添加按钮