Telegram API: cURL Status prüfen?

1 Antwort

Ändere zunächst die Reihenfolge deiner Funktionsaufrufe. Erst sollte der Request ausgeführt werden, bevor du den letzten Response Status Code einholst.

$result = curl_exec($ch);
$httpstatus = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);

Wenn du dir dazu einmal die Beispiele aus der PHP-Dokumentation anschaust, wird zuvor sogar noch nach aufgetretenen Fehlern geprüft. Man könnte es also auch so schreiben:

$result = curl_exec($ch);

if (!curl_errno($ch)) {
  $statusCode = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);

  if ($statusCode !== 200) {
    // not successful ...
  }
}

Im Folgenden würde ich zudem nochmals genauer prüfen, was dir die API selbst als Rückmeldung zurückgibt, sollte die Nachricht nicht ankommen. Vielleicht könntest du dich an so ein Feedback ebenso noch anpassen.

Die API Dokumentation ist an dieser Stelle aber leider nicht sehr konkret:

On success, the sent  Message is returned.

Quelle


TimMagFussball 
Fragesteller
 20.05.2020, 22:42

danke wie kann ich da jetzt eine Variable erstellen damit ich später prüfen kann ob die gesetzt ist ? das geht in der Funktion ja nicht so einfach wie:

$denied = $chatid;

0
TimMagFussball 
Fragesteller
 20.05.2020, 22:45
@TimMagFussball

genauso kann ich da kein sendMessage an mich machen:

sendMessage($bot_id,$admin_chatid,$chatid.' ist inaktiv.');

server log sagt:

PHP Notice: Undefined variable: admin_chatid

0
regex9  21.05.2020, 03:47
@TimMagFussball

Du brauchst wohl eine globale Variable.

$someVariable = "";

function doSomething() {
  global $someVariable;
  $someVariable = "hello";
}

doSomething();
print $someVariable; // "hello"
0