Появилась необходимость частично переписать API под python, с сайта etxt.ru:
https://www.etxt.ru/api/
Встряли с другом на моменте и не поймём как хешируется пароль. Весь код:
<?
$auxParamsArr = [
'name' => 'Folder Name',
'id_parent' => 0
];
$json = makeRequest("folders.addFolder", $auxParamsArr);
print_r($json);
function makeRequest($method, $auxParamsArr) {
$api_url = "https://www.etxt.ru/api/json/";
$api_pass = "XXXXXXXXXXXXX";
$token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$baseParamsArr = [
'token' => $token,
'method' => $method
];
ksort($baseParamsArr);
$params = "";
foreach($baseParamsArr as $key => $val)
$params .= ($key . "=" . $val);
$sign = md5($params.md5($api_pass.'api-pass'));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url."?token=".$token."&method=".$method."&sign=".$sign);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($auxParamsArr));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$json = curl_exec($ch);
curl_close($ch);
return $json;
}
Момент на котором возникла заминка:
$baseParamsArr = [
'token' => $token,
'methodу' => $method
];
ksort($baseParamsArr);
$params = "";
foreach($baseParamsArr as $key => $val)
$params .= ($key . "=" . $val);
$sign = md5($params.md5($api_pass.'api-pass'));
Не пойму как работает массив:
$baseParamsArr
И что делает token, т.к от сайта уже передаётся хешированный токен и сортировать его нет смысла:
ksort($baseParamsArr);
И зачем там нужен method, если значение method меняется в зависимости от требуемых задач API:
'methodу' => $method
Всех заранее благодарю за ответы :3