Преобразование URL-адреса, хранящегося как переменная, в href в полезной нагрузке JSON в файле скрипта Google Apps

У меня есть скрипт Google Apps, который, по сути, отправляет мне ключевые фрагменты информации из Google Sheet через Slack, и одним из этих фрагментов является URL-адрес листа, хранящийся в виде переменной ниже:

  var sheetUrl = ss.getUrl();

Я вызываю переменную 'sheetUrl' в полезной нагрузке JSON, а затем запускаю эту функцию ниже:

function sendToSlack_(url,payload) {
   var options =  {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : JSON.stringify(payload)
  };
  return UrlFetchApp.fetch(url, options)
}

Я хотел бы преобразовать этот 'sheetUrl' в HREF, а не публиковать весь URL-адрес листа Google, который уродлив и длинен, может ли кто-нибудь указать мне правильное направление, пожалуйста?

Это урезанная версия файла скрипта для придания контекста:

function sendToSlack() {

  var url = "https://hooks.slack.com/services/"; // channel in Slack  

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetUrl = ss.getUrl();
  var stagingData = ss.getSheetByName('Staging');

  //Week No for current week & previous week
 var currentWeekNo = stagingData.getRange(2, 6).getValue();
 var previousWeekNo = stagingData.getRange(1, 6).getValue();
 
 // Quantities for current week vs Previous Week
 var sv15CurrentWeek = stagingData.getRange(6, 15).getValue();
 var sv15BasicCurrentWeek = stagingData.getRange(7, 15).getValue();
 var sv15BgCurrentWeek = stagingData.getRange(8, 15).getValue();
 var sv156CurrentWeek = stagingData.getRange(9, 15).getValue();

 var sv15PreviousWeek = stagingData.getRange(20, 15).getValue();
 var sv15BasicPreviousWeek = stagingData.getRange(21, 15).getValue();
 var sv15BgPreviousWeek = stagingData.getRange(22, 15).getValue();
 var sv156PreviousWeek = stagingData.getRange(23, 15).getValue();
 
 
 function formatNumber(num) {
    return num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
  }
  
  var payload = {
     "channel" : "#reports",
     "type": "mrkdwn",
     "text" : 
      "*Week No. * - " + currentWeekNo + " vs " + previousWeekNo + "\n " 
       + "\n " 
       + sheetUrl
     }
  
  {
  sendToSlack_(url,payload)
}
function sendToSlack_(url,payload) {
   var options =  {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : JSON.stringify(payload)
  };
  return UrlFetchApp.fetch(url, options)
}

}

Что вы подразумеваете под «преобразовать в HREF»? HREF — это атрибут тега привязки. Пожалуйста, объясни.

Cooper 14.12.2020 21:01

Спасибо за ответ. В сообщении Slack вместо того, чтобы видеть весь URL-адрес листа Google, я бы в идеале хотел, чтобы это была гиперссылка с надписью «Нажмите здесь», чтобы просмотреть лист

RustyTones 14.12.2020 21:09

Возможно, вы могли бы объяснить, как вы создаете Slack-сообщение. Также имеет смысл преобразовать строку в строку. Обычно вы приводите объекты в строку с именами свойств.

Cooper 14.12.2020 21:12

Я добавил большую часть скрипта к моему исходному сообщению выше, но по существу он содержит переменные: var payload = { "channel" : "#reports", "type": "mrkdwn", "text" : "*№ недели * - " + номер текущей недели + " vs " + номер предыдущей недели + "\n " + "\n " + url листа }

RustyTones 14.12.2020 21:14

Я упорядочиваю полезную нагрузку, в которой находится эта переменная Sheeturl. Я пытался использовать теги привязки в этой полезной нагрузке, но я просто не могу понять это. @cooper, ты видишь мой пример выше?

RustyTones 14.12.2020 21:26

Я вижу ваш пример, но я до сих пор не знаю, о чем вы спрашиваете. Каков ваш вопрос о скрипте приложений Google?

Cooper 14.12.2020 21:28

Я пытаюсь добиться такого рода вещей

RustyTones 14.12.2020 21:44

{ "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Это сообщение содержит URL-адрес someurl\n } } ] }

RustyTones 14.12.2020 21:45

Я могу добиться этого следующим образом: «<docs.google.com/spreadsheets/|Это ссылка>», но я хочу использовать переменную var sheetUrl = ss.getUrl();

RustyTones 14.12.2020 21:52

Например: "<sheeturl|Это ссылка>"

RustyTones 14.12.2020 21:52

Все в порядке, я разобрался: "<" + sheetUrl + "|Link>"

RustyTones 14.12.2020 21:54
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
11
138
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Теперь это работает, оборачивая якоря и включая переменную между знаками плюс, как показано ниже.

"<" + адрес листа + "|Ссылка>"

Другие вопросы по теме