Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Google Sheets事件聊天机器人-双重功能?_Json_Google Apps Script_Google Sheets_Webhooks_Google Chat - Fatal编程技术网

Json Google Sheets事件聊天机器人-双重功能?

Json Google Sheets事件聊天机器人-双重功能?,json,google-apps-script,google-sheets,webhooks,google-chat,Json,Google Apps Script,Google Sheets,Webhooks,Google Chat,这是全新的。我正在尽我所能去做我所知道的事情(这真的很难,我向你们所有以此为生的人致敬——希望有一天我能做到) 我试图让机器人根据工作表上特定单元格中的错误复选标记向聊天室发送消息 我有为你工作的功能 时间戳和getEffectiveUser().getEmail-用于问责 函数sendRemembers()-它使用webhook向聊天室发送消息(从Google Dev窃取了这条消息) 下面是我的代码,我已经尝试了很多不同的方法来调用函数sendRequirement,如果e.value==“F

这是全新的。我正在尽我所能去做我所知道的事情(这真的很难,我向你们所有以此为生的人致敬——希望有一天我能做到)

我试图让机器人根据工作表上特定单元格中的错误复选标记向聊天室发送消息

我有为你工作的功能

  • 时间戳和getEffectiveUser().getEmail-用于问责
  • 函数sendRemembers()-它使用webhook向聊天室发送消息(从Google Dev窃取了这条消息)
  • 下面是我的代码,我已经尝试了很多不同的方法来调用函数sendRequirement,如果e.value==“FALSE”(我知道这不是理想的方法,当然我愿意接受建议)

    这是目前的代码,但它的唯一工作方式是手动-再次希望sendReminder在单元格中出现“FALSE”时触发

    函数onEdit(e){
    如果(e.value==“TRUE”){
    e、 source.getSheetByName(“Daily”).getRange(e.range.rowStart,e.range.columnStart+1).setValue(Session.getEffectiveUser().getEmail());
    e、 source.getSheetByName(“Daily”).getRange(e.range.rowStart,e.range.columnStart+2).setValue(new Date()).setNumberFormat(“MM/dd/yyyyy hh:MM”);}
    返回e.value;
    }
    函数sendReminder(){
    风险值数据={
    文字:“看起来LCH Temp现在是开放的-有人可以接管吗?”
    };
    var payload=JSON.stringify(数据);
    变量选项={
    方法:“POST”,
    contentType:'应用程序/json',
    有效载荷:有效载荷
    };
    var url='1〕https://chat.googleapis.com/v1/spaces/AAAAuBSsspc/messages?key=AIzaSyDdI0hCZtE6vySjMm-wefrq3cpzqkqshi&token=jqvtFaKqM1a_spMOJFByn29jTEL5iF-JZQ9BEFws9u4%3D'
    var rsp=UrlFetchApp.fetch(url,选项);
    }
    回答: 简单触发器对可以运行的方法类型有限制。您需要将其更改为可安装触发器

    更多信息: 根据有关简单触发器的文档:

    他们无法访问需要的文件。例如,简单触发器无法发送电子邮件,因为需要授权,但简单触发器可以翻译带有的短语,这是匿名的

    由于
    UrlFetchApp
    需要授权,您将无法仅通过简单的触发器运行此操作

    修正: 您需要将检查代码放在您的
    onEdit(e)
    中,用于“FALSE”,类似于:

    设置时的功能(e){
    //不管你有什么代码
    //将下一行的“C5”更改为要检查的任何特定单元格:
    如果(e.range.getA1Notation()=“C5”&&e.value==“FALSE”){
    发送提醒()
    }
    }
    
    然后,您需要将
    wheedited()
    函数设置为可安装触发器:

    设置触发器: 使用“保存”图标保存脚本,然后按“运行”按钮(►), 并确认运行脚本的身份验证

    从这里开始,在
    编辑>当前项目的触发器
    菜单项之后,您将在G Suite Developer Hub中打开一个新页面。单击右下角的
    +添加触发器
    按钮,设置触发器设置,如下所示:

    • 选择要运行的函数:
      wheendited
    • 选择应该运行的部署:Head
    • 从电子表格中选择事件源
    • 选择基于时间的触发器类型:编辑时
    然后按save。现在,每当编辑您指定的单元格时,
    sendmails()
    功能将运行,并在您事先授权的情况下运行

    我希望这对你有帮助

    参考资料: