佩尔 | Telegram Bot 和 sendPhoto 方法
Perl | Telegram Bot and sendPhoto method
我需要有关 纯 perl(没有 WWW::Telegram::BotAPI)实现 sendPhoto BotAPI 方法的帮助
我发送的简单文本没有问题
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON::MaybeXS;
....
....
my $ua = LWP::UserAgent->new;
utf8::decode($message);
my $p = {
chat_id=>$groupid,
parse_mode=>'HTML',
text=>$message
};
my $response = $ua->request(
POST 'https://api.telegram.org/bot'.$token.'/sendMessage',
Content_Type => 'application/json',
Content => JSON::MaybeXS::encode_json($p)
);
...
但是使用 sendPhoto (https://core.telegram.org/bots/api#sendphoto) 我遇到了问题。如果我想上传新图片,我必须将哪个 JSON 发送到服务器?
chat_id=>$groupid,
caption=>$message
photo=> { ? binary blob here ? }
我错了)
对于文件上传,我不需要 json!
错了!
my $p = [ chat_id => $groupid,
caption => 'image caption',
photo => ["/tmp/pdf.png"]
];
my $response = $ua->request(
POST 'https://api.telegram.org/bot'.$token.'/sendPhoto',
Content_Type => 'form-data',
Content => JSON::MaybeXS::encode_json($msg)
);
以下有效
my $p = [ chat_id => $groupid,
caption => 'image caption',
photo => ["/tmp/pdf.png"]
];
my $response = $ua->request(
POST 'https://api.telegram.org/bot'.$token.'/sendPhoto',
Content_Type => 'form-data',
Content => $msg
);
我需要有关 纯 perl(没有 WWW::Telegram::BotAPI)实现 sendPhoto BotAPI 方法的帮助
我发送的简单文本没有问题
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON::MaybeXS;
....
....
my $ua = LWP::UserAgent->new;
utf8::decode($message);
my $p = {
chat_id=>$groupid,
parse_mode=>'HTML',
text=>$message
};
my $response = $ua->request(
POST 'https://api.telegram.org/bot'.$token.'/sendMessage',
Content_Type => 'application/json',
Content => JSON::MaybeXS::encode_json($p)
);
...
但是使用 sendPhoto (https://core.telegram.org/bots/api#sendphoto) 我遇到了问题。如果我想上传新图片,我必须将哪个 JSON 发送到服务器?
chat_id=>$groupid,
caption=>$message
photo=> { ? binary blob here ? }
我错了)
对于文件上传,我不需要 json!
错了!
my $p = [ chat_id => $groupid,
caption => 'image caption',
photo => ["/tmp/pdf.png"]
];
my $response = $ua->request(
POST 'https://api.telegram.org/bot'.$token.'/sendPhoto',
Content_Type => 'form-data',
Content => JSON::MaybeXS::encode_json($msg)
);
以下有效
my $p = [ chat_id => $groupid,
caption => 'image caption',
photo => ["/tmp/pdf.png"]
];
my $response = $ua->request(
POST 'https://api.telegram.org/bot'.$token.'/sendPhoto',
Content_Type => 'form-data',
Content => $msg
);