Size: a a a

Чат | Google Таблицы и скрипты

2020 November 29

MS

Michael Smirnov in Чат | Google Таблицы и скрипты
Ванька zloy
отправляю сообщение вот такой вот командой, что нагуглил.
var openUrl = UrlFetchApp.fetch(url).getContentText()
с короткими сообщениями нет проблем, сам же урл если его самому в браузере использовать тоже проблем не вызывает.
Возможно есть какой то другой  метод как послать в телегу сообщение ?
И о какой стороне бота вы говорите? из таблицы всё летит в телеграм АПИ.
Используйте другой вариант fetch - с двумя аргументами, чтобы не в URL заталкивать параметры свои, а во второй аргумент функции. https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)

На стороне бота - это там, где у вас логика работы бота. Но не тот случай, просто используй те второй вариант функции.
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Michael Smirnov
Используйте другой вариант fetch - с двумя аргументами, чтобы не в URL заталкивать параметры свои, а во второй аргумент функции. https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)

На стороне бота - это там, где у вас логика работы бота. Но не тот случай, просто используй те второй вариант функции.
Пошел читать и пробовать! Спасибо!
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
Ванька zloy
отправляю сообщение вот такой вот командой, что нагуглил.
var openUrl = UrlFetchApp.fetch(url).getContentText()
с короткими сообщениями нет проблем, сам же урл если его самому в браузере использовать тоже проблем не вызывает.
Возможно есть какой то другой  метод как послать в телегу сообщение ?
И о какой стороне бота вы говорите? из таблицы всё летит в телеграм АПИ.
Посылать в апи нужно методом post, а не get.
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Роман Игнатов
Посылать в апи нужно методом post, а не get.
я не указывал метод
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
Ванька zloy
я не указывал метод
значит посылал через get, смотри в апи как тоже самое делать через post.
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Роман Игнатов
значит посылал через get, смотри в апи как тоже самое делать через post.
Короткие сообщения идут, длинные не хотят. Вопрос причём тут метод? Или я снова чего-то не понимаю ?
источник

VP

Vitaliy P. in Чат | Google Таблицы и скрипты
Ванька zloy
Короткие сообщения идут, длинные не хотят. Вопрос причём тут метод? Или я снова чего-то не понимаю ?
Прочитайте различие между методами GET и POST, станет яснее откуда идёт проблема с длинной url
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Vitaliy P.
Прочитайте различие между методами GET и POST, станет яснее откуда идёт проблема с длинной url
Может у вас найдётся рабочая функция ?
источник

VP

Vitaliy P. in Чат | Google Таблицы и скрипты
Вам её скинули выше
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
Ванька zloy
Короткие сообщения идут, длинные не хотят. Вопрос причём тут метод? Или я снова чего-то не понимаю ?
согласно квотам https://developers.google.com/apps-script/guides/services/quotas размер url не может превышать 2Кбайт. Размер post 50 Мбайт. Согласно апи телеграм размер одного сообщения не может превышать 4096Кбайт.
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Не хватает мне опыта чтобы понимать то что вы скидываете. Увы.

Вот что я сделал исходя из ссылок выше. Но судя по всему параметры оно не прикрепляет.

function sendTelegramMessage(telegramChatId, message) {
 message = encodeURIComponent(message);
 message = encodeURIComponent("Какой то странный текст 💗💜💟🕳💫\n и ещё немного текста");
 
 var url =`https://api.telegram.org/bot${telegramToken}/sendMessage`;
 
 var formData = {
   'chat_id': telegramChatId,
   'text': message,
   'parse_mode': 'html'
 };
 
 var payload = JSON.stringify(formData);
 
 var options = {
   'method' : 'post',
   'payload' : payload
 };
 
 
 var openUrl = UrlFetchApp.fetch(url, options);
 Logger.log(openUrl)
}

Выдаёт ошибку

Exception: Не удалось отправить запрос сервису https://api.telegram.org. Код ошибки: 400. Сокращенный ответ сервера: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Michael Smirnov
Используйте другой вариант fetch - с двумя аргументами, чтобы не в URL заталкивать параметры свои, а во второй аргумент функции. https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)

На стороне бота - это там, где у вас логика работы бота. Но не тот случай, просто используй те второй вариант функции.
Попытался использовать то, что написано здесь. Но видимо не верно пользуюсь.
источник

А

Артемий in Чат | Google Таблицы и скрипты
Добрый день! Подскажите, в таблице есть функция, которая обращается к API, но нужно сделать так, чтобы данные по ней обновлялись (ячейки находятся в одном столбце), это можно как-то сделать?
источник

A

Admin in Чат | Google Таблицы и скрипты
Артемий
Добрый день! Подскажите, в таблице есть функция, которая обращается к API, но нужно сделать так, чтобы данные по ней обновлялись (ячейки находятся в одном столбце), это можно как-то сделать?
Такой штатной функции нет, только скриптом
Можно попробовать пользовательскую функцию (тоже скрипт)
источник

V

Vladislav in Чат | Google Таблицы и скрипты
Ванька zloy
Не хватает мне опыта чтобы понимать то что вы скидываете. Увы.

Вот что я сделал исходя из ссылок выше. Но судя по всему параметры оно не прикрепляет.

function sendTelegramMessage(telegramChatId, message) {
 message = encodeURIComponent(message);
 message = encodeURIComponent("Какой то странный текст 💗💜💟🕳💫\n и ещё немного текста");
 
 var url =`https://api.telegram.org/bot${telegramToken}/sendMessage`;
 
 var formData = {
   'chat_id': telegramChatId,
   'text': message,
   'parse_mode': 'html'
 };
 
 var payload = JSON.stringify(formData);
 
 var options = {
   'method' : 'post',
   'payload' : payload
 };
 
 
 var openUrl = UrlFetchApp.fetch(url, options);
 Logger.log(openUrl)
}

Выдаёт ошибку

Exception: Не удалось отправить запрос сервису https://api.telegram.org. Код ошибки: 400. Сокращенный ответ сервера: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}
источник

A

Admin in Чат | Google Таблицы и скрипты
+
источник

V

Velikan 🦕 in Чат | Google Таблицы и скрипты
Michael Smirnov
Очень сильно сомневаюсь, что правильно вас понял. https://datastudio.google.com/reporting/fbed664b-d634-4c82-90e0-6477ba1a89f3

Лучше бы вы свой дашборд пошарили, где не получается что-то преобразовать.
https://datastudio.google.com/reporting/b52ebd98-333d-43ab-9668-2655368105b6 вот ссылка на дашборд, так же вот ссылка на таблицу (https://docs.google.com/spreadsheets/d/11-qi3xUc5pjxeDZBYcQ5Cc-0LBUipRqEmNT_z2PNxfg/edit?usp=sharing), где я вручную объединил некоторые данные и по ним сделал диаграмму. Мне нужна точно такая же диаграмма, только что бы в дата студио считала само по данным, соответственно мне нужно что бы был подсчет по статусу звонка
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Спасибо, но результат всё тот же. ошибка 400
Сведения о сообщении
Exception: Не удалось отправить запрос сервису https://api.telegram.org. Код ошибки: 400. Сокращенный ответ сервера: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}. Чтобы ознакомиться с полным ответом, воспользуйтесь опцией muteHttpExceptions. (строка 44, файл Код)
источник

V

Vladislav in Чат | Google Таблицы и скрипты
Ванька zloy
Спасибо, но результат всё тот же. ошибка 400
Сведения о сообщении
Exception: Не удалось отправить запрос сервису https://api.telegram.org. Код ошибки: 400. Сокращенный ответ сервера: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}. Чтобы ознакомиться с полным ответом, воспользуйтесь опцией muteHttpExceptions. (строка 44, файл Код)
А message какой передаешь? Я у себя проверил - работает.
источник

Вz

Ванька zloy in Чат | Google Таблицы и скрипты
Vladislav
А message какой передаешь? Я у себя проверил - работает.
сейчас попробую на голом проекте сделать
источник