Если мое понимание правильное, как насчет этого ответа?
Проблема и обходной путь:
File>Publish to the web>publish
можно запустить для Документов Google. Этот URL-адрес мог быть получен ранее с помощью publishedLink
Drive API v2. Но на данном этапе, к сожалению, это нельзя использовать как для Drive API v2, так и для v3. Поэтому в качестве обходного пути я хотел бы предложить использовать идентификатор файла.
Кстати, 2PACX-###
из https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml
не является идентификатором файла. Также, пожалуйста, будьте осторожны с этим.
Пример сценария:
В этом случае, в качестве тестового примера, получается URL опубликованной таблицы.
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var url = ss.getUrl().replace("edit", "pubhtml"); // or replace("edit", "pub");
Logger.log(url)
}
Примечание:
- В приведенном выше сценарии, когда электронная таблица не публикуется в Интернете, при доступе к URL-адресу электронная таблица не отображается. Пожалуйста, будьте осторожны.
Например, если вы хотите получить URL-адрес документа Google, вы можете использовать следующий скрипт. К сожалению, в Google Document getUrl()
возвращает https://docs.google.com/open?id=###
. Таким образом, вышеописанный сценарий не может быть использован.
function myFunction() {
var doc = DocumentApp.getActiveDocument();
var url = "https://docs.google.com/document/d/" + doc.getId() + "/pub";
Logger.log(url)
}
Ссылки:
Если я неправильно понял ваш вопрос и это не то направление, в котором вы хотите, я приношу свои извинения.
Добавлено:
Если вы можете включить Drive API в Advanced Google Services , вы также можете использовать следующий скрипт.
Pattern 1:
Когда вы используете связанный с контейнером скрипт Google Docs,Вы можете использовать это.
var url = Drive.Files.get((DocumentApp.getActiveDocument() || SpreadsheetApp.getActiveSpreadsheet() || SlidesApp.getActivePresentation()).getId()).alternateLink.replace(/\/edit.+/, "/pub");
Logger.log(url);
Шаблон 2:
Если у вас есть идентификатор файла Документов Google, вы можете использовать его.
var url = Drive.Files.get(fileId).alternateLink.replace(/\/edit.+/, "/pub");
Logger.log(url);