Я создал бота для телеграмм, который регистрирует критические ошибки в нашем чате с телеграммой. Этот бот использовался в другом приложении symfony (4.4) и работал нормально.
Но сейчас я пытаюсь использовать его в проекте Symfony 3.4, и после генерации ошибки Telegram отвечает: :
resulted in a `400 Bad Request` response:
{"ok":false,"error_code":400,"description":"Bad Request: can't parse entities: Can't find end of the entity starting at (truncated...)
Тем не менее, изменение parse_mode
с Markdown
на HTML
устраняет проблему, но я пытаюсь понять, почему это может быть.
Это строка, которую я пытаюсь отправить:
$message = "$user just had an error at: $path\n`$error`\n$file:$line";
Эта функция отправляет запрос:
/**
* @param $method
* @param $headers
* @param $body
* @return mixed|ResponseInterface
* @throws GuzzleException
*/
public function APIMethod($method, $headers, $body)
{
$client = new Client();
$uri = 'https://api.telegram.org/bot' . $this->telegramToken . '/' . $method;
return $client->request('POST', $uri, [
'headers' => $headers,
'form_params' => $body,
]);
}
/**
* @param $telegramId
* @param $text
* @return mixed|ResponseInterface
* @throws GuzzleException
*/
public function sendNotification($telegramId, $text)
{
try {
return $this->APImethod('sendMessage', [
'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => 'application/json',
], [
'chat_id' => $telegramId,
'parse_mode' => 'Markdown',
'text' => $text,
'disable_web_page_preview' => true,
]);
} catch (Exception $exception) {
return $exception->getMessage();
}
}
Заранее спасибо