Здравствуйте. В этой теме https://imakebots.ru/article/primer-bot-magazina-na-google-app-script в комментариях было приведено решение для отправки фото через метод апи sendPhoto с помощью file-id.
Подскажите, как можно отправить картинку с помощью GoogleAppScript, используя мультипарт-форм-дата? Перекопал пол стэкОверфлоу... не нашел примера, чтобы хоть на что-то опереться.
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.
Для того чтобы направить картинку через multipart/form-data нужно иметь физический доступ к ней
GAPPS выполняется на серверах Google, поэтому нужно, чтобы картинка была на его сервере, для этого можно в хранилище или закачать сначала картинку по внешнему url или в ручную загрузить
В качестве хранилища можно использовать Google DRIVE
Вот пример для отправки картинки используя доступный (расшаренный) файл с Google Drive
// id картинки на google drive const file_id = "1EWwZ4md----------NS1tybVFd06Qo_h"; // id пользователя в телеграм const chat_id = 00000000; // данные const config = { apiUrl: "https://api.telegram.org/bot", token: "340600000:AAGgh1-------wdiVQs23jSzxKVW3qILFpY" } /** * Выполним запрос */ function send() { sendPhoto(chat_id, file_id); } /** * Отправим картинку с Google Drive */ function sendPhoto(chat_id, file_id, text = null) { // подготовим набор данных let payload = { method: "sendPhoto", chat_id: String(chat_id), photo: DriveApp.getFileById(file_id).getBlob(), parse_mode: "HTML" }; if(text != null) { payload.caption = text; } // вернем результат отправки return query(payload); } /** * Направляем запрос в Телеграм */ function query(payload) { let data = { method: "post", payload: payload }; return JSON.parse(UrlFetchApp.fetch(config.apiUrl + config.token + "/", data).getContentText()); }
Замените на свои данные, сохраните и выполните функцию send() - потребуется выдать права скрипту на доступ к Google DRIVE.
file_id можно получить из url картинки:
https://drive.google.com/file/d/
1EWwZ4md----------NS1tybVFd06Qo_h
/viewСпасибо! Работает! )