Я строю бот на Telegram Bot API. Для конкретной функции мой бот должен помнить переменные при повторной отправке данных через веб-крючок.
Чтобы сделать это коротким; каждый раз, когда я отправляю сообщение, загружается PHP-файл (работает на Google App Engine), который вызывается Telegram Bot API.
Бот «перезагружается» каждый раз, когда API отправляет данные в webhook, все переменные сброшены конечно. Я думал об использовании $_SESSION
-Переменный, но это также не работает.
Кроме сохранения данных в базе данных MySQL или записи в файл, есть ли другие возможности временно хранить данные где-то?
Спасибо!
Если веб-зацепки Telegram API не учитывают куки-файлы, вам нужно где-то сохранять свое состояние. Похоже, в этом случае лучше всего сохранить файл.
Google App Engine позволяет использовать потоки PHP, чтобы их было легко читать и записывать в Google Cloud Storage. https://cloud.google.com/appengine/docs/php/googlestorage/
Один из способов сделать это — поместить в массив любые переменные, которые вам нужно сохранить, а затем закодировать как JSON перед сохранением. Затем, когда вы читаете файл, просто декодируйте JSON как ассоциативный массив и продолжайте свой путь.
$path = 'gs://my_bucket/my_vars.json';
// read the variables - you'll want to check for existence, etc.
$myVarsJson = file_get_contents($path);
$myVarsArr = json_decode($myVarsJson,true);
// now you can access and modify the values of $myVarsArray
// DO SOMETHING...
// then save them
$myVarsJson = json_encode($myVarsArr);
file_put_contents($path);
Вы могли бы использовать
а также file_put_contents
чтобы сохранить ваше состояние в файл и загрузить его, когда вам это нужно снова.