У меня есть скрипт 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)
}
}
Спасибо за ответ. В сообщении Slack вместо того, чтобы видеть весь URL-адрес листа Google, я бы в идеале хотел, чтобы это была гиперссылка с надписью «Нажмите здесь», чтобы просмотреть лист
Возможно, вы могли бы объяснить, как вы создаете Slack-сообщение. Также имеет смысл преобразовать строку в строку. Обычно вы приводите объекты в строку с именами свойств.
Я добавил большую часть скрипта к моему исходному сообщению выше, но по существу он содержит переменные: var payload = { "channel" : "#reports", "type": "mrkdwn", "text" : "*№ недели * - " + номер текущей недели + " vs " + номер предыдущей недели + "\n " + "\n " + url листа }
Я упорядочиваю полезную нагрузку, в которой находится эта переменная Sheeturl. Я пытался использовать теги привязки в этой полезной нагрузке, но я просто не могу понять это. @cooper, ты видишь мой пример выше?
Я вижу ваш пример, но я до сих пор не знаю, о чем вы спрашиваете. Каков ваш вопрос о скрипте приложений Google?
Я пытаюсь добиться такого рода вещей
{ "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Это сообщение содержит URL-адрес someurl\n } } ] }
Я могу добиться этого следующим образом: «<docs.google.com/spreadsheets/|Это ссылка>», но я хочу использовать переменную var sheetUrl = ss.getUrl();
Например: "<sheeturl|Это ссылка>"
Все в порядке, я разобрался: "<" + sheetUrl + "|Link>"
Теперь это работает, оборачивая якоря и включая переменную между знаками плюс, как показано ниже.
"<" + адрес листа + "|Ссылка>"
Что вы подразумеваете под «преобразовать в HREF»? HREF — это атрибут тега привязки. Пожалуйста, объясни.