PHP Telegram Bot: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request

xep22

Banned
Registriert
Apr. 2018
Beiträge
395
ich schreibe gerade mit PHP einen kleinen Telegram Bot wie hier gezeigt : https://nordicapis.com/how-to-build-your-first-telegram-bot-using-php-in-under-30-minutes/

doch irgendwie habe ich ein komisches Problem, dauernd antwortet der Bot nicht mehr und im Server-Log steht:

Code:
failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request


Ich habe mal etwas rumprobiert und folgendes herausgefunden. Als Beispiel, das hier funktioniert:

Code:
file_get_contents($path.'/sendmessage?chat_id='.$chatId.'&parse_mode=html&text=Dies ist unser Bot. Das.');

Aber wenn ich jetzt das Wort Das mit Hier ersetze, kommt wieder der 400 Error....

Code:
file_get_contents($path.'/sendmessage?chat_id='.$chatId.'&parse_mode=html&text=Dies ist unser Bot. Hier.');

Muss ich das verstehen ?? Kann mich jemand aufklären was das soll ?
 
  • Gefällt mir
Reaktionen: new Account()
Probiers mal so:
Code:
file_get_contents($path.'/sendmessage?chat_id='.$chatId.'&parse_mode=html&text=Dies%20ist%20unser%20Bot.%20Hier.');

Einfach mal ins Blaue geschossen. Vielleicht auch so (mit zusätzlichen Anführungsstrichen):

Code:
file_get_contents($path.'/sendmessage?chat_id='.$chatId.'&parse_mode=html&text="Dies%20ist%20unser%20Bot.%20Hier."');
 
  • Gefällt mir
Reaktionen: new Account()
Okay mit %20 geht es dann. scheinbar liegt es daran.... aber trotzdem doch komisch dass es bei einem anderen Wort geht ?
 
Ja irgendwie schon. Das %20 stellt im Grunde das Leerzeichen dar. Damit kanns in URLs Probleme geben. Und nichts anderes wird da ja benutzt.

Andere Vermutung lag bei den Punkten. Punkte in URLs sind ja praktisch "reserviert". Daher die Idee mit den zusätzlichen Anführungsstrichen. So als Hintergrund für meinen Gedankengang. Vielleicht bringts dich ja auf andere Ideen und Lösungsansätze :)
 
  • Gefällt mir
Reaktionen: new Account()
Zurück
Oben