Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Работа UrlFetchApp под onEdit - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Работа UrlFetchApp под onEdit
Kashimirush Дата: Четверг, 20.02.2020, 12:09 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
В продолжении темы форум
Решил попробовать получать сообщения не по почте а в телеграме, скрипт видоизменил получилось:
[vba]
Код
function onEdit(e) {
  //данные телеграм:
    var token = '99999999999999999';
    var idChat = '-99999999'
    // Получаем диапазон ячеек, в которых произошли изменения
  var range = e.range;
   // Лист, на котором производились изменения
  var sheet = range.getSheet();
  // Проверяем, нужный ли это нам лист
  if (sheet.getName() != 'Лист1') {
    return false;
  }
  // Проверяем стартовую позицию диапазона, нам нужно фиксировать изменения в столбце В, т.е. 2 колонка
  Logger.log(range.getColumn());
  if  (range.getColumn() != 2) {
    return false;
  }
   for (var i = 1; i <= range.getNumRows(); i++) {
    var cell = range.getCell(
      i, // номер строки
      1 // номер колонки
    );
    var sheet = e.source.getActiveSheet();
     //получаем номер измененной строки
    var idRow = e.range.getRow();
     //получаем текст из 4 колонки, на нужной строке
    var text = sheet.getRange(idRow, 4).getValue();
     //тоже из 1 колонки
    var date = sheet.getRange(idRow, 1).getValue();
     //Формируем текст сообщения
    var message = encodeURIComponent('Изменения в таблице ' + '\n' + 'Строка №' + idRow + '\n' +date+ '\n'+text);
     //Формируем ссылку по API Telegram
     var Url = 'https://api.telegram.org/bot'+token+'/sendMessage?chat_id='+idChat+'&text='+message;
     MessageBox(Url)
   };
};
function MessageBox(Url){
  UrlFetchApp.fetch(Url).getContentText()};
[/vba]

Но он не работает))
В логах следующая ошибка:
Цитата
Вам не разрешено вызывать пользователя UrlFetchApp.fetch. Необходимые разрешения: https://u.to/7WuHFw
at MessageBox(Код:39:15)
at onEdit(Код:35:6)

Помогите разобраться.


Работа, работа, перейди на Федота...

Сообщение отредактировал Kashimirush - Четверг, 20.02.2020, 12:13
 
Ответить
СообщениеВ продолжении темы форум
Решил попробовать получать сообщения не по почте а в телеграме, скрипт видоизменил получилось:
[vba]
Код
function onEdit(e) {
  //данные телеграм:
    var token = '99999999999999999';
    var idChat = '-99999999'
    // Получаем диапазон ячеек, в которых произошли изменения
  var range = e.range;
   // Лист, на котором производились изменения
  var sheet = range.getSheet();
  // Проверяем, нужный ли это нам лист
  if (sheet.getName() != 'Лист1') {
    return false;
  }
  // Проверяем стартовую позицию диапазона, нам нужно фиксировать изменения в столбце В, т.е. 2 колонка
  Logger.log(range.getColumn());
  if  (range.getColumn() != 2) {
    return false;
  }
   for (var i = 1; i <= range.getNumRows(); i++) {
    var cell = range.getCell(
      i, // номер строки
      1 // номер колонки
    );
    var sheet = e.source.getActiveSheet();
     //получаем номер измененной строки
    var idRow = e.range.getRow();
     //получаем текст из 4 колонки, на нужной строке
    var text = sheet.getRange(idRow, 4).getValue();
     //тоже из 1 колонки
    var date = sheet.getRange(idRow, 1).getValue();
     //Формируем текст сообщения
    var message = encodeURIComponent('Изменения в таблице ' + '\n' + 'Строка №' + idRow + '\n' +date+ '\n'+text);
     //Формируем ссылку по API Telegram
     var Url = 'https://api.telegram.org/bot'+token+'/sendMessage?chat_id='+idChat+'&text='+message;
     MessageBox(Url)
   };
};
function MessageBox(Url){
  UrlFetchApp.fetch(Url).getContentText()};
[/vba]

Но он не работает))
В логах следующая ошибка:
Цитата
Вам не разрешено вызывать пользователя UrlFetchApp.fetch. Необходимые разрешения: https://u.to/7WuHFw
at MessageBox(Код:39:15)
at onEdit(Код:35:6)

Помогите разобраться.

Автор - Kashimirush
Дата добавления - 20.02.2020 в 12:09
Kashimirush Дата: Четверг, 20.02.2020, 14:10 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Попробовал без onEdit, просто функцию с триггером на редактирование из ""Триггеров текущего проекта"
Все айс работает, пока не начнешь добавлять пользователей.
Без onEdit каждому пользователю нужно авторизоваться в скрипте и привязать скрипту триггер - звучит как то не очень. Всех нужно будет учить пользованию консолью))


Работа, работа, перейди на Федота...

Сообщение отредактировал Kashimirush - Четверг, 20.02.2020, 14:12
 
Ответить
СообщениеПопробовал без onEdit, просто функцию с триггером на редактирование из ""Триггеров текущего проекта"
Все айс работает, пока не начнешь добавлять пользователей.
Без onEdit каждому пользователю нужно авторизоваться в скрипте и привязать скрипту триггер - звучит как то не очень. Всех нужно будет учить пользованию консолью))

Автор - Kashimirush
Дата добавления - 20.02.2020 в 14:10
Kashimirush Дата: Четверг, 20.02.2020, 15:14 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Если
авторизоваться в скрипте
не так уж и сложно, то с
привязать скрипту триггер
будет проблематично, как то можно триггер распространить на всех пользователей таблицы ?


Работа, работа, перейди на Федота...
 
Ответить
СообщениеЕсли
авторизоваться в скрипте
не так уж и сложно, то с
привязать скрипту триггер
будет проблематично, как то можно триггер распространить на всех пользователей таблицы ?

Автор - Kashimirush
Дата добавления - 20.02.2020 в 15:14
Kashimirush Дата: Вторник, 25.02.2020, 12:06 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
пользователю нужно авторизоваться в скрипте и привязать скрипту триггер

Был не прав, в изначальном коде у меня было всплывающее окошко (Отправить сообщение: Да/Нет), и гугл на нем застопорился, когда отрабатывал триггер.
Убрал всплывающее окно, дал скрипту триггер на редактирование таблицы - теперь все работает у всех пользователей.



Работа, работа, перейди на Федота...

Сообщение отредактировал Kashimirush - Вторник, 25.02.2020, 12:36
 
Ответить
Сообщение
пользователю нужно авторизоваться в скрипте и привязать скрипту триггер

Был не прав, в изначальном коде у меня было всплывающее окошко (Отправить сообщение: Да/Нет), и гугл на нем застопорился, когда отрабатывал триггер.
Убрал всплывающее окно, дал скрипту триггер на редактирование таблицы - теперь все работает у всех пользователей.


Автор - Kashimirush
Дата добавления - 25.02.2020 в 12:06
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!