我写了一个关于煤气的机器人,可以从电报中读到/写到谷歌的一张纸上。我使用了web钩子方法。我可以用/read <args>和/write <args>来称呼机器人。然而,技术水平较低的人无法理解争论的原理.所以我想做一个像僵尸一样的对话机器人。如果/read或/write被发送了,那么机器人就会一个接一个地向pm询问论点。“PM中的回复”部分很简单,但我不知道如何才能捕捉到对论点的答复。
据我所知,每次向机器人发送命令时都会调用函数doPost,这会带来交互性问题,并且需要一个斜线--某种命令来运行脚本而不是纯文本回复(而且由于GAS数据不稳定,存储变量以知道机器人应该执行第二个操作也是不可能的)。
的固有特性。
任何帮助都很感激!
发布于 2022-02-10 18:42:40
因此,GAS确实提供了一个不太容易挥发的存储: CacheService.getScriptCache() (也参见https://developers.google.com/apps-script/reference/cache/cache)。
原理很简单:将您想要持久的变量存储在缓存中(可选,也可以设置一个超时-默认值为10分钟),并在脚本再次调用时获取值。我发现了一个帮助我理解如何使用它的项目:https://github.com/Milleus/tessara/blob/master/Code.gs
用几句话来说:语法是cache.put(key, value)来存储值,而value=cache.get(key)是把它取回来。
它的优点是所有必需的变量(如果不止一个)都可以存储在一个对象中,键可以是“用户”的唯一标识符,而值是字符串化的对象。
在我的例子中,我能够构建一个完全对话的电报机器人(与BotFather完全一样,但适用于我的使用)。使用发送消息给bot的用户的id作为密钥,脚本可以同时为多个用户“并行”运行。
发布于 2022-02-09 18:43:40
doGet和doPost是跟随web应用程序url调用的函数。如果您使用像UrlFetchApp这样的工具来访问它们,甚至可以使用Http请求(如果您可以处理oauth ),您可以将它们作为api使用。
https://stackoverflow.com/questions/71052069
复制相似问题