Пробую переместить папки на диске и получаю ошибку, хотя делаю все правильно.
Получил access_token, попробовал получить список папок на диске через метод
https://cloud-api.yandex.net/v1/disk/resources
все работает прекрасно.
Попробовал создать папку через метод PUT
https://cloud-api.yandex.net/v1/disk/resources
тоже все получилось.
А метод
https://cloud-api.yandex.net/v1/disk/resources/move
ни работает ни в какую
$data = array(
"from" => urlencode('/Music'),
"path" => urlencode('/App'),
);
Итого получаю ошибку
Array
(
[message] => Ошибка проверки поля "from": Это поле является обязательным.
[description] => Error validating field "from": This field is required.
[error] => FieldValidationError
)
Поле from в запросе передается, почему не работает?
UPD:
$url = 'https://cloud-api.yandex.net/v1/disk/resources/move';
$data = array(
"from" => urlencode('/Music'),
"path" => urlencode('/App'),
);
$result = $this->sendQueryYaDisk($url,$data,'POST');
private function sendQueryYaDisk($methodAPI = '', $arrQuery = [], $methodQuery = 'GET')
{
if($methodQuery == 'POST') {
$fullUrlQuery = $methodAPI;
} else {
$fullUrlQuery = $methodAPI . '?' . http_build_query($arrQuery);
}
$ch = curl_init($fullUrlQuery);
switch ($methodQuery) {
case 'PUT':
curl_setopt($ch, CURLOPT_PUT, true);
break;
case 'POST':
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arrQuery));
break;
case 'DELETE':
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
break;
}
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: OAuth ' . $token]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$resultQuery = curl_exec($ch);
curl_close($ch);
return (!empty($resultQuery)) ? json_decode($resultQuery, true) : [];
}