Я использую PHP-библиотеку Plivo для отправки смс через plivo.
Я устанавливаю правильные учетные данные аутентификации в библиотеке, и она кодируется в base64 согласно библиотеке в методе curl_request.
Я думаю, что заголовки верны, и моя интеграция с моей платформой работает нормально, но при попытке отправить простое сообщение с помощью метода send_message я не могу заставить его работать и всегда получаю статус ответа 401, который согласно документации, ошибка аутентификации.
Что я делаю неправильно ?
Большое спасибо
Мой код:
//Load library messages
$this->load->library( 'Plivo' );
$p = new RestAPI( 'MANXXXXXXXXXXXXXZIWOD', 'MmXXXXXXXXXXXXXXXXXXXXXXXXXXXX' );
// //for each phone Numbers generate password associated to event
foreach ( $nums as $key => $num ) {
//For each combo send Message
$params = array(
'src' => '13307782635', // Sender's phone number with country code (US)
'dst' => '447598XXXXXX', // Receiver's phone number with country code (UK)
'text' => 'Hi, Message from your fired', // Your SMS text message
'url' => site_url( 'eventPromotion/report' ), // The URL to which with the status of the message is sent
'method' => 'POST' // The method used to call the url
);
// Send message
$response = $p->send_message($params);
// Print the response
echo "Response : ";
var_dump( $response );
Вместо использования библиотеки можно использовать api.
<?php
# Plivo AUTH ID
$AUTH_ID = 'AUTH_ID-GOES-HERE';
# Plivo AUTH TOKEN
$AUTH_TOKEN = 'AUTH-TOKEN-GOES-HERE';
# SMS sender ID.
$src = 'SM123';
# SMS destination number
$dst = 'MOBILE-NUMBER';
# SMS text
$text = 'Hello';
$url = 'https://api.plivo.com/v1/Account/'.$AUTH_ID.'/Message/';
$data = array("src" => "$src", "dst" => "$dst", "text" => "$text");
$data_string = json_encode($data);
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_USERPWD, $AUTH_ID . ":" . $AUTH_TOKEN);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec( $ch );
curl_close($ch);
print_r($response);
?>
Измените следующие параметры в коде
AUTH_ID-GOES-HERE
AUTH-TOKEN-GOES-HERE
MOBILE-NUMBER
Note: Please make sure upload this code to live server in localhost it is not working
Других решений пока нет …