Получите указанные c значения из ответа Slack HTTP и поместите в Google Sheets - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь получить указанные c значения из HTTP-ответа от интерактивного компонента Slack и разместить их в указанных c ячейках в Google Sheet.

Я думаю, что мне здесь не хватает чего-то фундаментального, потому что, когда я пытаюсь запустить это как задумано, ничего не происходит.

Фактическая строка JSON выглядит следующим образом: (Я отформатировал это в Интернете, чтобы было легче просматривать, и заменил конфиденциальные данные на x)


{
   "parameter": {
      "payload": {
         "type": "message_action",
         "token": "xxxxxx",
         "action_ts": "1579669130.303488",
         "team": {
            "id": "xxxx",
            "domain": "xxxxxx"
         },
         "user": {
            "id": "xxxxxx",
            "name": "xxxxx"
         },
         "channel": {
            "id": "xxxxx",
            "name": "privategroup"
         },
         "callback_id": "send to sheets",
         "trigger_id": "xxxx",
         "message_ts": "1579646357.002000",
         "message": {
            "client_msg_id": "xxxxxx",
            "type": "message",
            "text": "<xxxxx> blah",
            "user": "xxxxxx",
            "ts": "1579646357.002000",
            "team": "xxxxx",
            "blocks": [

-It continues on from here-

Я хочу получить "ts" и "user" внутри "message"

Мой код до сих пор выглядит так:

function doPost(e) {
  if (typeof e !== 'undefined') { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Escalations');
    var lastRow = sheet.getLastRow();

    var parsed = JSON.parse(e.postData.contents);
    var userName = parsed.parameter.payload.message.user; 
    var time = parsed.parameter.payload.message.ts; 

    var slackDetails = [time,userName]; 

    sheet.getRange(lastRow + 1,13,1,2).setValues([slackDetails]);
  }
  return ContentService.createTextOutput('thanks');
}

Кто-нибудь знает, что я делаю не так?

...