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
Google apps script Hangouts聊天机器人图像卡未刷新_Google Apps Script_Google Api_Hangouts Chat - Fatal编程技术网

Google apps script Hangouts聊天机器人图像卡未刷新

Google apps script Hangouts聊天机器人图像卡未刷新,google-apps-script,google-api,hangouts-chat,Google Apps Script,Google Api,Hangouts Chat,我正在构建一个聊天机器人。我的机器人将显示来自免费图像api的随机图像。在每次调用时,URL都是相同的,但会得到一个新的图像。不幸的是,我的机器人不会更新图像。它只是在每次通话中重新发布相同的图像。我正在使用谷歌的应用程序脚本部署机器人。我的图像代码如下: function buildImageCard(url) { return { cards: [ { sections: [

我正在构建一个聊天机器人。我的机器人将显示来自免费图像api的随机图像。在每次调用时,URL都是相同的,但会得到一个新的图像。不幸的是,我的机器人不会更新图像。它只是在每次通话中重新发布相同的图像。我正在使用谷歌的应用程序脚本部署机器人。我的图像代码如下:

function buildImageCard(url) {
    return {
        cards: [
            {
                sections: [
                    {
                        widgets: [
                            {
                                image: {
                                    imageUrl: url

                                }
                            }
                        ]
                    }
                ]
            }
        ]
    };
}
随机图像显示得和它应该显示的一样。唯一的问题是,当我想再次调用它时,它会显示相同的图像。我似乎找不到刷新卡片的方法。我见过这种方法:

actionResponse: {type: shouldUpdate ? 'UPDATE_MESSAGE' : 'NEW_MESSAGE'},

然后将
shoulldupdate
传递到
buildImageCard
。尽管如此,如果
shouldUpdate
为true,则不会发生任何事情。我遗漏了什么?

问题似乎与缓存有关。Hangouts Chat正在缓存图像,因此不需要每次都下载它们。您可以通过清除浏览器缓存并使用聊天机器人更新卡来尝试。你应该看到新的图像

您可以做的一件事是在url的末尾包含一个缓存断路器:

widgets: [
             {
                image: {
                   imageUrl: url + new Date().getTime()

                }
             }
         ]
正如建议的那样

另外,在同一篇文章中,有人评论说这不是一个好的做法,“因为它会淹没缓存(本地和上游)”。他们建议,但在这种情况下,我们无法控制
缓存控制

我不知道Hangouts Chat是如何管理缓存的,但我猜他们正在处理缓存,以防机器人上传大量不同的图像。例如,在你的情况下,如果每次你想在卡片中更新一个新的URL时都生成一个新的URL,那么情况也是一样的,所以我相信cachebreaker可以为你工作

我希望有帮助