Authorization failed при использовании API для отправки СМС

Технические вопросы работы портала, общение с техническими специалистами компании

Authorization failed при использовании API для отправки СМС

Сообщение kivar21 » 26 дек 2012, 22:42

function BuildUrlParamsWithSignature($params, $password)
{
ksort($params);
$url = '';
if (!is_array($params))
return $url;
foreach($params as $key => $value)
{
$url .= $key . "=" . urlencode($value) . "&";
}
$signature = md5($url . "&password=".urlencode($password));
$url .= "signature=" . $signature;
return $url;
}

$link = "http://api.comtube.ru/scripts/api/sms.php";

$params = array
(
'action' => 'send',
'charset' => 'utf-8',
'message' => $text,
'number' => $number,
'report_to' => 'asdf@yandex.ru',
'senderid' => $number2,
'type' => 'json',
'username' => $login,
);

$params['signature'] = BuildUrlParamsWithSignature($params, $pass);

$url = $link.'?';
$params_url = array();
foreach ($params as $key => $value)
{
$params_url[] = $key.'='.$value;
}
$url .= implode("&", $params_url);
//print $url;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
kivar21
 
Сообщения: 8
Зарегистрирован: 05 авг 2011, 11:45

Re: Authorization failed при использовании API для отправки

Сообщение kivar21 » 26 дек 2012, 22:43

Пишет "401 Authorization failed".
Что не так?
kivar21
 
Сообщения: 8
Зарегистрирован: 05 авг 2011, 11:45

Re: Authorization failed при использовании API для отправки

Сообщение sd » 27 дек 2012, 10:08

Так у вас делаются лишние действия. Хватит и этого:

Код: Выделить всё
$link = "http://api.comtube.ru/scripts/api/sms.php";

$params = array
(
'action' => 'send',
'charset' => 'utf-8',
'message' => $text,
'number' => $number,
'report_to' => 'asdf@yandex.ru',
'senderid' => $number2,
'type' => 'json',
'username' => $login,
);

$url = $link . "?" . BuildUrlParamsWithSignature($params, $pass);


Дело в том, что BuildUrlParamsWithSignature формирует строку с параметрами и подписью. Результат надо просто добавить к базовому URL'у.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: Authorization failed при использовании API для отправки

Сообщение kivar21 » 27 дек 2012, 10:36

Спасибо, теперь все ок.
kivar21
 
Сообщения: 8
Зарегистрирован: 05 авг 2011, 11:45


Вернуться в Техническая поддержка

Просмотр страницы «Кто сейчас на форуме COMTUBE»

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58