Slack Webhooks подключены к Google Sheets Получить следующий ряд - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть этот код, который отлично подходит для использования исходящего веб-крюка в слабом режиме, чтобы заполнить лист Google, а затем вернуть отформатированный ответ из листа Google в слабый канал, но я не могу понять, как его получить.это тянуть любые другие столбцы в гугл листе.Вот ссылка google sheet .Таким образом, все выглядит следующим образом:

  1. В слабом канале вы можете использовать исходящий веб-крючок и опубликовать следующее сообщение: test; test; test
  2. Эта информация заполняется на листе Google с помощьюновая строка
  3. google script форматирует эту информацию в полезную нагрузку и отправляет отформатированную версию информации в свободный канал. Все это происходит в столбцах A: F, а в строке G есть формула массива иЯ хотел бы, чтобы скрипт Google вытащил значение этого столбца в новой строке и отправил его обратно в ответ Slack. Я попытался ввести sheets.getRangeByName('test').getValue(nR,1), но это не сработало, и я также попытался sheet.getRange(noteTakerCell).getValue(), но это тоже неЭто не работает, и это также, кажется, мешает все это работать больше. Вот пример ответа, отправленного обратно в Slack, и я хотел бы включить новую строку тестового столбца. enter image description hereВот код, который в настоящее время работает для столбцов A: F, я удалил сценарий, который я написал для попытки получить новую строку столбца G, так как кажется, что он не дает работать всем. Любая помощь будетМы высоко ценим.Спасибо!

    function doPost(req) {
      var sheets = SpreadsheetApp.openById('1P4goTvi2a7yjh-fBccRJPJ9ZFNly8OhxmABXkuhfbBQ');
      var params = req.parameters;
    
      var nR = getNextRow(sheets) + 1;
    
      if (params.token == "[Slack Outgoing Webhook]") {
    
        // PROCESS TEXT FROM MESSAGE
        var textRaw = String(params.text).replace(/^\s*update\s*:*\s*/gi,'');
        var text = textRaw.split(/\s*;\s*/g);
    
        // FALL BACK TO DEFAULT TEXT IF NO UPDATE PROVIDED
        var project   = text[0] || "No Project Specified";
        var yesterday = text[1] || "No update provided";
        var today     = text[2] || "No update provided";
        var blockers  = text[3] || "No update provided";
    
        // RECORD TIMESTAMP AND USER NAME IN SPREADSHEET
        sheets.getRangeByName('timestamp').getCell(nR,1).setValue(new Date());
        sheets.getRangeByName('user').getCell(nR,1).setValue(params.user_name);
    
        // RECORD UPDATE INFORMATION INTO SPREADSHEET
        sheets.getRangeByName('project').getCell(nR,1).setValue(project);
        sheets.getRangeByName('yesterday').getCell(nR,1).setValue(yesterday);
        sheets.getRangeByName('today').getCell(nR,1).setValue(today);
        sheets.getRangeByName('blockers').getCell(nR,1).setValue(blockers);
    
        var channel = "[Slack Channel]";
    
        postResponse(channel,params.channel_name,project,params.user_name,yesterday,today,blockers);
    
      } else {
        return;
      }
    }
    
    function getNextRow(sheets) {
      var timestamps = sheets.getRangeByName("timestamp").getValues();
      for (i in timestamps) {
        if(timestamps[i][0] == "") {
          return Number(i);
          break;
        }
      }
    }
    
    function postResponse(channel, srcChannel, project, userName, yesterday, today, blockers) {
    
      var payload = {
        "channel": "#" + channel,
        "username": "New Update",
        "icon_emoji": ":white_check_mark:",
        "link_names": 1,
        "attachments":[
           {
              "fallback": "This is an update from a Slackbot integrated into your organization. Your client chose not to show the attachment.",
              "pretext": "*" + project + "* posted an update for stand-up. (Posted by @" + userName + " in #" + srcChannel + ")",
              "mrkdwn_in": ["pretext"],
              "color": "#D00000",
              "fields":[
                 {
                    "title":"Yesterday",
                    "value": yesterday,
                    "short":false
                 },
                 {
                    "title":"Today",
                    "value": today,
                    "short":false
                 },
                 {
                    "title":"Blockers",
                    "value": blockers,
                    "short": false
               }
              ]
           }
        ]
      };
    
      var url = '[Slack Incoming Webhook]';
      var options = {
        'method': 'post',
        'payload': JSON.stringify(payload)
      };
    
      var response = UrlFetchApp.fetch(url,options);
    }
...