Conectar Slack ao KPL e notificar novos pedidos

Bom dia, tudo certo?

Como conectar passo a passo o Slack ao KPL via API no Google App Script e Google Planilhas, para receber uma notificação a cada nova venda efetuada?

@ChatGPT

Para conectar o Slack ao KPL via API no Google App Script e Planilhas, siga os seguintes passos:

  1. Crie um bot no Slack e obtenha o token do bot.
  2. Crie um tópico no Kinesis e obtenha suas credenciais de acesso.
  3. Abra um novo projeto no Google Cloud Console e ative a API do Kinesis.
  4. Crie uma nova planilha no Google Sheets e abra o editor de scripts.
  5. Digite o código necessário para conectar o Slack ao KPL e receber notificações de novas vendas.

A seguir, apresento um exemplo de código que pode ser usado para realizar essa conexão. Lembre-se de substituir as informações de autenticação com suas próprias credenciais antes de executar o código:

var slackToken = 'SEU_SLACK_TOKEN';
var kinesisOptions = {
    accessKeyId: 'SUA_ACCESS_KEY_ID', 
    secretAccessKey: 'SUA_SECRET_ACCESS_KEY', 
    region: 'SUA_REGIAO_DO_KINESIS'
};

function postToSlack(message) {
    var slackUrl = 'https://slack.com/api/chat.postMessage';
    var slackPayload = {
        token: slackToken, 
        channel: '#canal-do-slack', 
        text: message
    };
    var options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(slackPayload)
    };
    UrlFetchApp.fetch(slackUrl, options);
}

function sendToKinesis(message) {
    var kinesis = Kinesis(kinesisOptions);
    var kinesisPayload = {
        Data: JSON.stringify(message), 
        PartitionKey: 'test'
    };
    kinesis.putRecord({
        Data: JSON.stringify(kinesisPayload),
        StreamName: 'SEU_STREAM_NAME'
    }, function(error, data) {
        if (error) { 
            Logger.log(error); 
        } else {
            Logger.log(data); 
        }
    });
}

function onNewSale(e) {
    var sheet = e.source.getActiveSheet();
    var row = e.range.getRow();
    var message = 'Nova venda na linha ' + row + ': ' + sheet.getRange(row, 1).getValue() + ', ' + sheet.getRange(row, 2).getValue();

    postToSlack(message);
    sendToKinesis(message);
}

Esse código define três funções principais: postToSlack, sendToKinesis e onNewSale. A função postToSlack recebe uma mensagem e a envia para um canal específico do Slack que você define. A função sendToKinesis envia a mesma mensagem para um tópico no Kinesis, usando as credenciais de acesso fornecidas. Finalmente, a função onNewSale é acionada sempre que uma nova venda é adicionada à planilha e, em seguida, chama as funções postToSlack e sendToKinesis para notificar o Slack e o Kinesis sobre a nova venda.

Lembre-se de configurar suas credenciais de acesso e informações do Slack com as suas próprias. Além disso, ajuste o código para se adequar às suas necessidades específicas antes de executá-lo.