Я пытаюсь отправить исходящий вызов с помощью API REST callfire, и мне трудно это сделать. Вот мой код (адаптировано из https://developers.callfire.com/docs.html#createVoiceBroadcast):
<?php
$username = '...';
$password = '...';
$data = array(
'name' => 'Automation Test',
'fromNumber' => '...',
'recipients' => array(
array('phoneNumber' => '...')
),
'answeringMachineConfig' => 'AM_AND_ALIVE',
'liveSoundText' => 'hello, world!',
'machineSoundText' => 'hello, world!'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://api.callfire.com/v2/campaigns/voice-broadcasts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = json_decode(curl_exec($ch));
print_r($result);
Проблема в ответе. Это выглядит следующим образом:
stdClass Object
(
[httpStatusCode] => 415
[internalCode] => 0
[message] => Exception in API
)
Код состояния 415 для «Неподдерживаемый тип носителя» для https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error но так как я не загружаю какие-либо медиа, эта ошибка не имеет большого смысла.
Может быть, моя ценность для answeringMachineConfig
является недействительным. IDK, что AM_AND_LIVE должен означать, но это в примере, поэтому я использую его. Если есть только небольшое количество возможных значений, документация должна сказать об этом ..
Вам необходимо установить тип контента на «application / json».
Старый я знаю, но просто наткнулся на него. Может быть:
'answeringMachineConfig' => 'AM_AND_ALIVE',
должно быть:
'answeringMachineConfig' => 'AM_AND_LIVE',
Вы написали ЖИВ, а не ЖИТЬ