我想知道如何在电报机器人 API 中捕获任何可能的错误。因为当发生错误时,电报坚持它并且不回答其他请求。如果我的代码中的错误或我正在使用或阻止机器人的网络服务可能导致任何错误,我想摆脱,或者......我怎样才能避免使用 PHP 在电报机器人 API 中坚持一个请求?我认为我需要的是类似于波纹管代码的东西,但对于任何类型的错误都更通用:
try {
$telegram->sendMessage([
'chat_id' => '<PERSONS_ID>',
'text' => 'Here is some text',
]);
} catch (TelegramResponseException $e) {
$errorData = $e->getResponseData();
if ($errorData['ok'] === false) {
$telegram->sendMessage([
'chat_id' => '<ADMINISTRATOR ID>',
'text' => 'There was an error for a user. ' . $errorData['error_code'] . ' ' . $errorData['description'],
]);
}
}
最后我通过一个技巧解决了这个问题。我创建了另一个用于错误处理的机器人。所以我有一个机器人 X 和一个错误处理机器人 Y。这里是我从电报接收 webhooks 的 POST 方法:
public function postWebhook(Request $request)
{ .....
try
{ ....
bot X token
everything the bot want to do...
}
catch (\Exception $e)
{
bot Y send me the probable problem in my code....
}
catch (Throwable $e)
{
bot Y send me the probable problem in telegram such
as blocking ,..
}
现在我可以防止出现错误并且机器人工作得很好。如果我的网络服务的一部分有问题或我的代码有错误,我也会收到通知。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句