Карточка с изображением бота в чате Hangouts не обновляется - PullRequest
0 голосов
/ 11 декабря 2018

Я создаю бота для чата Hangouts.Мой бот будет отображать случайное изображение из свободного изображения API.URL API - это один и тот же URL при каждом вызове, но будет получено новое изображение.К сожалению, мой бот не будет обновлять изображение.Это просто репост одного и того же изображения при каждом вызове.Я использую Google Script для развертывания бота.Мой код изображения выглядит следующим образом:

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

                                }
                            }
                        ]
                    }
                ]
            }
        ]
    };
}

Случайное изображение отображается так, как и должно.Единственная проблема, когда я хочу позвонить еще раз, он показывает то же изображение.Кажется, я не могу найти способ обновить карту.Я видел этот метод:

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

Затем передайте shouldUpdate на buildImageCard.Хотя ничего не происходит, если shouldUpdate верно.Чего мне не хватает?

1 Ответ

0 голосов
/ 19 декабря 2018

Похоже, проблема связана с кешем.Чат Hangouts кэширует изображения, поэтому нет необходимости загружать их каждый раз.Вы можете попробовать это, очистив кеш браузера и обновив карту с помощью chatbot.Вы должны увидеть новое изображение.

Одна вещь, которую вы можете сделать, это включить прерыватель кеша в конце URL:

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

                }
             }
         ]

Как предлагается здесь .

Кроме того, в том же посте кто-то заметил, что это нехорошая практика: «, поскольку это затопит кеши (как локальные, так и вышестоящие) ».И они рекомендуют лучшее решение , но в этом случае мы не можем контролировать Cache-Control заголовки.

Я не знаю, как Hangouts Chat управляет кешем, но я думаю, что они принимаютЗаботьтесь об этом в случае, если бот загружает тонны различных изображений.Например, в вашем случае было бы то же самое, если бы вы генерировали новый URL каждый раз, когда хотите обновить его на карте, поэтому я считаю, что кеш-прерыватель может работать на вас.

Надеюсь, это поможет!

...