2017-04-19 43 views
2

我想知道如何捕捉电报机器人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'], 
     ]); 
    } 
} 
+0

你能告诉我们一个[最小,完整和可验证的例子](https://stackoverflow.com/help/mcve)吗? –

+2

@Ohgodwhy你打扰我的问题,甚至是电报bot API吗?您链接了用于开发电报客户端应用程序的电报核心API。 – mrmrn

回答

0

最后我被trick.I解决问题创造了另一个机器人用于错误处理。 所以我有一个机器人的X和错误处理BOT Y. 这里的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 ,.. 
     } 

现在我严防死守在一个错误,机器人的伟大工程。即使我的网络服务的一部分出现问题或者我的代码出现了错误,我也会收到通知。