Twizo SMS: для этого поля разрешены только значения массива - PullRequest
0 голосов
/ 10 июня 2019

ОБНОВЛЕНИЕ 1: мне не удалось заставить его работать, смотрите обновленный код ниже.Инструкции API: https://www.twizo.com/developers/documentation/

При отправке SMS с использованием моего кода ниже возвращается сообщение об ошибке:

{"validation_messages": {"receients": {"noArraySupplied": "Onlyмассив> значения допустимы для этого> поля "}}," type ":" http://www.w3.org/Protocols/rfc2616/rfc2616-.........>sec10.html","title":"Unprocessable> Entity "," status ": 422," detail ":" Failed Validation "}

файл send.php:

<head>
  <meta charset="utf-8">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style>  input[type=submit] { width: 50%; background-color: #4CAF50; color: white; padding: 14px 20px; margin: 8px 0; border: none; border-radius: 4px; cursor: pointer; } 
input[type=submit]:hover { background-color: #45a049; } 
div { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } </style>
<div>
<center>
<form method="post" action="">
Subject
<input type="text" name="from" value=<?php if(isset($_POST['from'])){echo $_POST['from']; } ?> ><br>
<textarea class="form-control" name="message" rows="5" placeholder="Put Message Here "><?php if(isset($_POST['message'])){echo $_POST['message']; } ?>
</textarea><BR/><BR/>

<textarea class="form-control" name="number"
 rows="5" placeholder="Put Number List Here"><?php if(isset($_POST['number'])){echo $_POST['number']; } ?>
</textarea><BR/><BR/>


<input type="submit" name="submit" value="Send"/>


</form>



<?php 
set_time_limit(0);
if (isset($_POST['submit'])) {
    $letter = $_POST['message'];
    $mailist = $_POST['number'];
    $from = $_POST["from"];
    $message = $letter;
    $line = 0;
    $list = explode("\n", $_POST['number']);
    foreach ($list as $number) {
        $line = $line + 1;
    } ?>
<H4>Total Number : <?php echo $line; ?> </H4>
<?php
$spamed = 0;
    foreach ($list as $number) {
        $spamed = $spamed + 1;
        echo " ".$spamed."/".$line." ><b>".$number." => status :";
        include "result.php";
    }
}


?>

</center>

файл result.php:

sleep(0.7);
$message_array = array("https://twizo:API-KEY@api-eu-01.twizo.com/v1/sms/submitsimple");
$mssage = array_rand($message_array);
$url = $message_array[$mssage];
$data = array('recipients' => ("".$number), 'body' => $message, 'sender' => $from);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$js = json_decode($result);
curl_close($ch);
if ($js->message == "ok") {
    echo "sent";
    echo "<br>";
} else {
    if (!isset($js->message)) {
        echo $result;
        echo "<br>";
        echo $url;
    } else {
        echo "not sent <br> message  =";
        echo  $js->message;
        echo "<br>";
        echo $url;
    }
}

1 Ответ

1 голос
/ 11 июня 2019

result.php

Ваше поле сообщения ( получателей ) должно быть массивом.

ваша текущая строка

$data = array('recipients' => ("".$number), 'body' => $message, 'sender' => $from);

изменить на

$data = array('recipients[]' => ($number), 'body' => $message, 'sender' => $from);

вам просто нужно добавить [] для преобразования поля в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...