Fastfile编写Ruby Telegram通知器报unexpected tIDENTIFIER语法错误求助
错误原因
- 引号嵌套冲突:你使用双引号包裹
sh执行的整条命令,但命令内部JSON部分的双引号没有做转义处理,Ruby解析字符串时会提前判定字符串结束,后续的chat_id等内容被识别为非法标识符,触发语法报错。 - 代码块不闭合:
lane :detox do代码块缺少对应的闭合end,不符合Ruby语法规则。
修复方案
推荐使用Ruby定界字符串%{}包裹命令,避免嵌套引号转义的问题,同时补全缺失的闭合标签,修改后代码如下:
lane :detox do images = Dir.glob("folder/*.png") images.each do |image| puts image sh %{curl --request POST --header 'Content-Type: application/json' --data '{"chat_id": "123456789", "media": [{"type": "photo", "media": "attach://#{image}"}]}' https://api.telegram.org/botToken/sendMediaGroup} end end
注:如果不需要把遍历到的图片路径传入命令,可去掉
#{image}插值语法替换为固定值即可。
内容的提问来源于stack exchange,提问作者Maksim Satsyuk
相关产品推荐
相关产品推荐

