2016-12-06 5 views
3

Я использую twilio для отправки массовых сообщений sms. Предположим, что некоторые клиенты решили, что они больше не хотят получать сообщения, поэтому они отвечают «stop», и это добавит их в черный список. Я жестко кодирую телефонные номера, потому что я все еще тестирую свои собственные сотовые телефоны. Я заметил, что когда я не удаляю цифры в черном списке из своего кода, я получаю сообщение об ошибке, и мой скрипт останавливается на этом этапе.Twilio blacklist rule фатальная ошибка

В будущем я, вероятно, буду использовать числа, хранящиеся в базе данных или файле. В этом случае, как мне решить эту проблему, если это произойдет. В основном, что я хочу сделать: если число находится в черном списке, переходите к следующему номеру и избегайте этой ошибки с помощью исключения или чего-то еще. Ниже приведено сообщение об ошибке и код.

Спасибо,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
<title>Send SMS</title> 
<?php 
    /* Send an SMS using Twilio. You can run this file 3 different ways: 
    * 
    * 1. Save it as sendnotifications.php and at the command line, run 
    *   php sendnotifications.php 
    * 
    * 2. Upload it to a web host and load mywebhost.com/sendnotifications.php 
    * in a web browser. 
    * 
    * 3. Download a local server like WAMP, MAMP or XAMPP. Point the web root 
    * directory to the folder containing this file, and load 
    * localhost:8888/sendnotifications.php in a web browser. 
    */ 

    // Step 1: Get the Twilio-PHP library from twilio.com/docs/libraries/php, 
    // following the instructions to install it with Composer. 
    //require_once "vendor/autoload.php"; 
    require __DIR__ . '/twilio-php-master/Twilio/autoload.php'; 
    use Twilio\Rest\Client; 

    // Step 2: set our AccountSid and AuthToken from https://twilio.com/console 
    $AccountSid = "something"; 
    $AuthToken = "something"; 

    // Step 3: instantiate a new Twilio Rest Client 
    $client = new Client($AccountSid, $AuthToken); 

    // Step 4: make an array of people we know, to send them a message. 
    // Feel free to change/add your own phone number and name here. 
    $people = array(
     "+1757" => "Chris", 
     "+17571234568" => "Hussam" 
    ); 

    // Step 5: Loop over all our friends. $number is a phone number above, and 
    // $name is the name next to it 
    foreach ($people as $number => $name) { 

     $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 
       // that you've purchased 
       'from' => "+184444444444", 

       // the sms body 
       'body' => "Hey $name, this is Hussam. Testing Twilio SMS API!" 
      ) 
     ); 

     // Display a confirmation message on the screen 
     echo "Sent message to $name.\n"; 
    } 
?> 

Фатальная ошибка (!): Uncaught исключение 'Twilio \ Исключения \ RestException' с сообщением «[HTTP 400] Не удалось создать запись: Сообщение From/To пары нарушает правила черный список «. в C: \ wamp64 \ www \ Twilio \ twilio-php-master \ Twilio \ Version.php в строке 86 (!) Twilio \ Exceptions \ RestException: [HTTP 400] Невозможно создать запись: сообщение From/To pair нарушает правило черного списка. в C: \ wamp64 \ www \ Twilio \ twilio-php-master \ Twilio \ Version.php в строке 86 Стол вызовов

Время Функция памяти Расположение 1 0.0000 239280 {main}() ... \ send.php: 0 2 0.0156 799016 Twilio \ Rest \ Api \ V2010 \ Account \ MessageList-> create() ... \ send.php: 56 3 0.0156 814688 Twilio \ Version-> create() ... \ MessageList.php: 63

ответ

2

Twilio разработчик евангелист здесь.

Вам нужно поймать исключение, которое выбрасывается из запроса для отправки сообщения в черный список. Вы можете сделать это с try и catch, как это:

foreach ($people as $number => $name) { 
    try { 
     $sms = $client->account->messages->create(
      $number, 
      array(
       'from' => "+18443949780", 
       'body' => "Hey $name, this is Hussam. Testing Twilio SMS API!" 
      ) 
     ); 
     echo "Sent message to $name.\n"; 
    } catch (Exception $e) { 
     echo "Couldn't send message to $number\n"; 
    } 
} 

Если подключить этот до базы данных, вы хотите использовать catch, чтобы обновить поле, чтобы отметить номер блокированными, так что вы не» Повторите попытку.

Дайте мне знать, если это поможет вообще.

+0

Awesome !! Это сработало!! Спасибо .. –

+0

Без проблем! Удачи вам в остальной части вашего приложения! – philnash

+0

Вы что, шутите? Почему вы сбой, когда кто-то занесен в черный список? Не можете ли вы просто вернуть код ошибки? Это так непрофессионально. –

 Смежные вопросы

  • Нет связанных вопросов^_^