Telegram sendPhoto 方法不刷新
Telegram sendPhoto method don't refresh
我正在使用一个简单的机器人代码,它从使用以下方法创建的 php 页面获取图像:
header("Content-type: image/png");
和
imagepng();
这是机器人代码:
if ($text == "/photo") {
$reply_markup = [
"inline_keyboard" => [
[
[
"text" => "Url",
"url" => "https://google.com",
],
],
],
];
sendPhoto($chat_id, "https://url.com/image.php?x=".urlencode($string), "Text", "HTML", false, $message_id, $reply_markup);
}
function sendPhoto($chat_id, $photo, $caption, $parse_mode = "default", $disable_notification = "default", $reply_to_message_id, $reply_markup) {
global $config;
if ($parse_mode == "default") $parse_mode = $config['parse_mode'];
if ($disable_notification === "default") $disable_notification = $config['disable_notification'];
$args = [
"chat_id" => $chat_id,
"photo" => $photo,
"caption" => $caption,
"parse_mode" => $parse_mode,
"disable_notification" => $disable_notification,
];
if (isset($reply_to_message_id)) $args["reply_to_message_id"] = $reply_to_message_id;
if (isset($reply_markup)) $args["reply_markup"] = $reply_markup;
return json_decode(http_request("sendPhoto", $args), true);
}
代码运行良好,并且可以正确发送图像。但是,如果我使用相同的 url 两次,它会向我发送之前发送的旧版本。
例如,我请求 ?x=photo 并正确打印 photo.png,过了一会儿,我再次请求照片(现在 php 页面给了我另一张图片)但是机器人给我发送了旧的照片。它似乎缓存在 Telegram
上
Telegram 可能正在缓存它,因为它两次收到相同的文件名,而不是发送带有原始名称的照片,您可以生成一个随机文件名,这样 telegram 就不会缓存它。
我正在使用一个简单的机器人代码,它从使用以下方法创建的 php 页面获取图像:
header("Content-type: image/png");
和
imagepng();
这是机器人代码:
if ($text == "/photo") {
$reply_markup = [
"inline_keyboard" => [
[
[
"text" => "Url",
"url" => "https://google.com",
],
],
],
];
sendPhoto($chat_id, "https://url.com/image.php?x=".urlencode($string), "Text", "HTML", false, $message_id, $reply_markup);
}
function sendPhoto($chat_id, $photo, $caption, $parse_mode = "default", $disable_notification = "default", $reply_to_message_id, $reply_markup) {
global $config;
if ($parse_mode == "default") $parse_mode = $config['parse_mode'];
if ($disable_notification === "default") $disable_notification = $config['disable_notification'];
$args = [
"chat_id" => $chat_id,
"photo" => $photo,
"caption" => $caption,
"parse_mode" => $parse_mode,
"disable_notification" => $disable_notification,
];
if (isset($reply_to_message_id)) $args["reply_to_message_id"] = $reply_to_message_id;
if (isset($reply_markup)) $args["reply_markup"] = $reply_markup;
return json_decode(http_request("sendPhoto", $args), true);
}
代码运行良好,并且可以正确发送图像。但是,如果我使用相同的 url 两次,它会向我发送之前发送的旧版本。
例如,我请求 ?x=photo 并正确打印 photo.png,过了一会儿,我再次请求照片(现在 php 页面给了我另一张图片)但是机器人给我发送了旧的照片。它似乎缓存在 Telegram
上Telegram 可能正在缓存它,因为它两次收到相同的文件名,而不是发送带有原始名称的照片,您可以生成一个随机文件名,这样 telegram 就不会缓存它。