#function #google-apps-script #url #expand
Вопрос:
Я хочу урезать URL-адрес, используя пользовательскую функцию с помощью Google App Script. Я пробовал использовать этот код, но это не сработало.
function ExpandURL(url){
var response = UrlFetchApp.fetch(url,{followRedirects: false});
var longurl = decodeURIComponent(response.getHeaders()['Location'])
return longurl;
}
Например, я хочу показать оригинал этой ссылки t.ly/1lzC
, которая есть www.google.com
, используя функцию в Google Таблицах. Пожалуйста, помогите мне выбраться. Большое вам спасибо!
Комментарии:
1. Угадав вашу проблему и ситуацию, я предложил ответ. Не могли бы вы подтвердить это, пожалуйста? Если я неправильно понял ваш вопрос и это было бесполезно, я приношу свои извинения.
Ответ №1:
Когда я увидел ваш скрипт, я подумал, что ваш скрипт работает. Но, исходя из I tried with this code but it didn't work.
вашего вопроса, есть одна вещь, о которой я беспокоюсь. Я думаю, что ваш скрипт возвращает https://www.google.com
, когда https://t.ly/1lzC
используется как url
. Но, когда t.ly/1lzC
используется как url
, https://www.google.com
не может быть получен. Пожалуйста, будьте осторожны с этим.
Если вы хотите использовать свой скрипт в качестве пользовательской функции =ExpandURL(A1)
A1
t.ly/1lzC
, пожалуйста, измените его на =ExpandURL("https://"amp;A1)
. При этом https://www.google.com
возвращается.
Или, если вы хотите изменить свой скрипт, как насчет следующего изменения?
Модифицированный скрипт:
function ExpandURL(url) {
url = url.indexOf("https://") == 0 ? url : "https://" url; // Added
var response = UrlFetchApp.fetch(url, { followRedirects: false });
var longurl = decodeURIComponent(response.getHeaders()['Location']);
return longurl;
}
Ссылка:
Комментарии:
1. Привет @tanaike, большое тебе спасибо за ответ. Однако, когда я пытаюсь запустить код в скрипте приложения, он выдает исключение, подобное этому i.imgur.com/UwHaVFy.png То же самое произошло с моим кодом выше, вот почему я сказал, что это не сработало. Пожалуйста, помогите мне. Спасибо!
2. @antonietta171 вы используете функцию в ячейке электронной таблицы, верно? со значением URL в качестве параметра?
3. @Karan Да, это то, что я пытаюсь сделать. Я надеюсь, что когда он будет запущен, я смогу использовать
=ExpandURL
его как функцию в GSheets. После этого=ExpandURL(A1)
откроется исходный URL-адрес.4. @antonietta171 Ошибка, которую вы видите, возможно, потому, что вы запускаете эту функцию из редактора. Если вы хотите протестировать, создайте другую функцию, а затем вызовите ExpandURL(‘https: //….’) из этой функции с допустимым URL.
5. @tic Я хотел бы поддержать вас. Но, к сожалению, я не могу понять ваш вопрос. Итак, можете ли вы опубликовать его как новый вопрос, добавив дополнительную информацию? Таким образом, это поможет пользователям, включая меня, подумать о решении. Если вы можете сотрудничать, чтобы решить ваш вопрос, я рад. Можете ли вы сотрудничать, чтобы сделать это?