169 похожих чатов

Всем привет. Подскажите, настраиваю app script, чтобы делать выгрузку определенного

файл по расписанию в телеграм.

скрипт вроде как отрабаывает и даже кидается нужный файл, но он приходит без имени и в формате pdf, можете подсказать как исправить ?
Чтобы имя было и формат xlsx

var fileName = file.getName();
var fileBlob = file.getBlob();


var telegramUrl = "https://api.telegram.org/bot" + token + "/sendDocument";


var payload = {
method: "post",
payload: {
"chat_id": chatId,
"document": fileBlob,
"filename": fileName,
}
};

var response = UrlFetchApp.fetch(telegramUrl, payload);

19 ответов

59 просмотров

А файл изначально, это что за файл ? И если файл именован кириллицей - телеграм бот не передаст эти символы, нужно сделать транслитерацию на латиницу

Василий- Автор вопроса
Alexander Макеев
А файл изначально, это что за файл ? И если файл ...

Просто "новый файл" - называется, а когда вручную сохраняю, то там вроде xlsx формат. Мне не особо важно наименованием я не понимаю почему он pdf предлагает вместо xlsx

Василий- Автор вопроса
Alexander Макеев
var fileName = file.getName() + "." + fileBlob.get...

Благодарю, чуть позже попробую

Василий- Автор вопроса
Alexander Макеев
ерунду я написал

Как тогда правильнее 😅

Василий
Как тогда правильнее 😅

Правильнее преобразовать файл из гугл таблиц в excel, получить blob, задать имя через setName() , указывая в имени расширение .xlsx.

Но об этом не было сразу сказано, что табличка гугл а не файл Эксель Хотя видимо это очевидно из возникшей проблемы

Alexander Макеев
Но об этом не было сразу сказано, что табличка гуг...

Это очевидно из того что человек написал про Новый файл.)

Василий
Как тогда правильнее 😅

function sheetToXLBlob(ssId, sheetname, newnameoffile) { let format = 'xlsx'; let ss = SpreadsheetApp.openById(); let targetSheet = ss.getSheetByName(sheetname); let url = `https://docs.google.com/spreadsheets/export?id=${ssId}&gid=${targetSheet.getSheetId()}&exportFormat=${format}`; let blob = getBlob(url).getAs('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); return blob.setName(`${newnameoffile}.${format}`) } Вот с этим можете попробовать поработать

Василий- Автор вопроса
Alexander Макеев
function sheetToXLBlob(ssId, sheetname, newnameoff...

чтото тыкаюсь, но ни как не выходит стал вообще в html присылать (

Василий- Автор вопроса
Alexander Макеев
А покажите как передаёте аргументы

var fileName = "FILENAME.xlsx"; // Имя файла с расширением .xlsx var ss = SpreadsheetApp.openById(fileId); var format = "xlsx"; var url = `https://docs.google.com/spreadsheets/export?id=${fileId}&exportFormat=${format}`; var fileBlob = UrlFetchApp.fetch(url).getBlob(); var telegramUrl = "https://api.telegram.org/bot" + token + "/sendDocument"; var payload = { method: "post", payload: { "chat_id": chatId, "document": fileBlob, "filename": fileName } }; var response = UrlFetchApp.fetch(telegramUrl, payload); }

Василий
var fileName = "FILENAME.xlsx"; // Имя файла с р...

Откройте доступ к файлу по ссылке и попробуйте снова запустить.

Василий- Автор вопроса
Роман Игнатов
Откройте доступ к файлу по ссылке и попробуйте сно...

https://docs.google.com/spreadsheets/d/1cZ5zc_iVqK7p-RswpKtPn4b2DlNwwoNQ39k146rdXcQ/edit?usp=sharing

Василий- Автор вопроса
Роман Игнатов
Откройте доступ к файлу по ссылке и попробуйте сно...

Кажется работает, вот оно в чем проблема была...

Василий
Кажется работает, вот оно в чем проблема была...

В headers нужно будет передавать гугловский токен, если принципиально не открывать доступ по ссылке.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта