2017-04-19 44 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 ,.. 
     } 

現在我嚴防死守在一個錯誤,機器人的偉大工程。即使我的網絡服務的一部分出現問題或者我的代碼出現了錯誤,我也會收到通知。