Whispir, обратные вызовы API не работает

Все, кто использует API Whispir здесь?

Я пытаюсь использовать их функции обратного вызова, однако это не работает. согласно их документации http://developer.whispir.com/docs/read/Whispir_API_Callbacks обратные вызовы запускаются отправкой HTTP-запроса

HTTP 1.1 POST http://api.whispir.com/messages?apikey=<yourkey>
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/vnd.whispir.message-v1+xml

Пожалуйста, обратите внимание, что я использую Laravel 4.2

private static function curl_post($url, $username, $password, $curl_data)
{
$options = array(
CURLOPT_RETURNTRANSFER  => TRUE,
CURLOPT_FOLLOWLOCATION  => TRUE,
CURLOPT_AUTOREFERER     => TRUE,
CURLOPT_CONNECTTIMEOUT  => 90,
CURLOPT_TIMEOUT         => 90,
CURLOPT_MAXREDIRS       => 10,
CURLOPT_URL             => $url,
CURLOPT_HEADER          => false,
CURLOPT_HTTPHEADER      => array(
'Authorization: Basic cGhwZGV2YWxwaGE6cGx1c3BsdXMxMjM=',
'Content-Type: application/vnd.whispir.message-v1+json'
),
CURLOPT_ENCODING        => "",
CURLOPT_USERAGENT       => "'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13')",
CURLOPT_POST            => 1,
CURLOPT_POSTFIELDS      => $curl_data,
CURLOPT_SSL_VERIFYHOST  => 0,
CURLOPT_SSL_VERIFYPEER  => false,
CURLOPT_VERBOSE         => 1,
CURLOPT_USERPWD         => $username . ":" . $password
);

$ch = curl_init();
curl_setopt_array($ch, $options);
$data = curl_exec($ch);

if(curl_errno($ch))
throw new Exception(curl_error($ch));

curl_close($ch);

return $data;
}

private static function sendMessage( $to, $subject, $body )
{
$host       = $_ENV['SMS_HOST'];
$apikey     = $_ENV['SMS_APIKEY'];
$username   = $_ENV['SMS_USERNAME'];
$password   = $_ENV['SMS_PASSWORD'];

$data = array(
"to"            => $to,
"subject"       => $subject,
"body"          => $body,
"callbackId"    => "callback");

$json = json_encode($data);
return Smscenter::curl_post( $host.$apikey, $username, $password, $json );
}

Пожалуйста, прокомментируйте любые пояснения.

1

Решение

Обратные вызовы Whispir запускаются, когда происходит ответ на сообщение, отправленное с помощью API Whispir.

Таким образом, ваш код отправит сообщение со ссылкой на то, какой обратный вызов следует использовать, и любые ответы через Whispir вызовут этот обратный вызов.

        $data = array(
"to"            => $to,
"subject"       => $subject,
"body"          => $body,
"callbackId"    => "callback");

Этот код выше верен. Пока в Whispir вы уже настроили обратный вызов с именем Перезвоните.

например

создать обратный звонок в шепчире

После того как вы создали обратный вызов в Whispir и отправили исходящее сообщение с прикрепленным callbackId, любые ответы на это сообщение приведут к тому, что Whispir отправит запрос POST на ваш URL.

Тело этого запроса выглядит следующим образом:

HTTP 1.1 POST http://mycallbackserver.com/mycallback
Content-Type: application/json
X-Whispir-Callback-Key: some-auth-code

{
"messageId": "ABC4857BCCF484575FCA",
"location" : "https://api.whispir.com/messages/ABC4857BCCF484575FCA",
"from":{
"name":"Fred Waters",
"mri":"[email protected]",
"mobile":"04xxxxxxxx",
"email":"[email protected]",
"voice":"03xxxxxxxx"},
"responseMessage":{
"channel":"SMS",
"acknowledged":"09/01/15 13:22",
"content":"Yes, I accept. Will I need to bring steel cap boots?"}
}

Ваше приложение может перехватить этот обратный вызов и проанализировать его, чтобы получить содержимое responseMessage.

Это должно иметь обратные вызовы и запуск в вашем приложении.

Заметки:

Во-первых, я не думаю, что вам нужно устанавливать CURLOPT_USERPWD, если вы также предоставляете CURLOPT_HTTPHEADER с параметром «Авторизация». По сути, они делают то же самое, поэтому я бы выбрал опцию CURLOPT_USERPWD.

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

Наконец, я являюсь менеджером по продукту для Whispir.io, поэтому, если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь отправлять их по электронной почте [email protected], и мы можем помочь вам.

Иордания

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]