2017-08-25 3 views
1

Ich verwende Twilio PHP API, um Massen-SMS an meine Kunden zu senden.
Problem ist, dass ich nur wie 80st SMS schicken können und ich habe dann einen Serverfehler:503 Fehler beim Versenden von SMS mit Twilio

Failed to load resource: the server responded with a status of 503 (Backend fetch failed)

Nun, ich denke das der Fehler sein könnte.
Weil ich keinen Erfolg bekomme echo echo "Sent message to $name und in der Twilio SMS Log kann ich nur sehen, dass 80 SMS von 200 gesendet wurde.

Was kann diesen Fehler verursachen?

foreach ($usrs as $number => $name) { 
    try{ 
     $sms = $client->account->messages->create(

      // the number we are sending to - Any phone number 
      $number, 

      array(
       // Step 6: Change the 'From' number below to be a valid Twilio number 
       'from' => "xxxxxxxxxxx", 

       // the sms body 
       'body' => "Hey $name. $text" 
      ) 
     ); 

     // Display a confirmation message on the screen 
     echo "Sent message to $name <br>"; 
    } 
    catch (TwilioException $e) { 
     die($e->getCode() . ' : ' . $e->getMessage()); 
    } 
} 
+1

ich denke, weil Sie bestimmte Nachricht pro Sekunde senden können. einige Verzögerung nach einigen Sms setzen und [Link überprüfen] (https://support.twilio.com/hc/en-us/articles/115002943027-Understanding-Twilio-Rate-Limits-and-Message-Queues) –

Antwort

1

Twilio Entwickler Evangelist hier.

Twilio has a limit of 100 concurrent API requests and will only send 1 message a second. Wie Ahmed in den Kommentaren vorgeschlagen hat, empfehle ich Ihnen, eine Verzögerung zwischen Aufrufen an die API hinzuzufügen, wenn Sie mehr als 100 Nachrichten senden.

bearbeiten

Fügt sleep(1) für jede Nachricht. Dadurch wird die Seite eine Sekunde nach dem Senden jeder Nachricht verzögert.

foreach ($usrs as $number => $name) { 
    try{ 
     $sms = $client->account->messages->create(

      // the number we are sending to - Any phone number 
      $number, 

      array(
       // Step 6: Change the 'From' number below to be a valid Twilio number 
       'from' => "xxxxxxxxxxx", 

       // the sms body 
       'body' => "Hey $name. $text" 
      ) 
     ); 

     // Display a confirmation message on the screen 
     echo "Sent message to $name <br>"; 

     sleep(1); 
    } 
    catch (TwilioException $e) { 
     die($e->getCode() . ' : ' . $e->getMessage()); 
    } 
} 
+0

Vielen Dank . Ich werde das testen. Kannst du mir ein Beispiel geben? Auch ich dachte, dass ich das Erfolgsecho eins nach dem anderen in der Schleife sehen sollte. Aber wenn die Seite versagt .. und die Schleife stoppen, habe ich einen einzelnen Erfolgstext nicht gesehen. warum ist das? –

+0

Gibt es Echos der Erfolgsmeldungen für eine HTML-Seite? – philnash

+0

Das Skript in meiner Frage ist in einer PHP-Datei. Ich hatte das Echo funktionierend, bevor ich die Try-Catch-Funktion benutzte, um schlechte nr's auszusortieren. –