Может у кого то был схожий трабл
В общем, мне нужно со своего сервера грузить по вк апи некоторые аудио. 90% из этих аудио не отправляются, отдается error -2. (Это по докам, якобы, проблема с приложением, но даже вк саппорт говорит что с приложением все норм).
Причем одно из 10 приложений грузится, другие нет. Аудио формата Mp3. Гружу руками уже аудио, на что вк говорит: "Не удалось сохранить аудиозапись.
Попробуйте переконвертировать MP3-файл и загрузить его снова."
Код (PHP, когда гружу с сервера)
private function getServerAddress()
{
$buildQuery = [
'access_token' => $this->apiKey,
'v' => '5.95'
];
$endpoint = 'https://api.vk.com/method/audio.getUploadServer?' . http_build_query($buildQuery);
$content = json_decode(file_get_contents($endpoint));
return $content->response->upload_url;
}
public function uploadToVKServer()
{
$address = $this->getServerAddress();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $address);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => new CURLFile(dirname(__FILE__) . '/calls/' . $this->callId . '.mp3', 'audio/mp3')]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
$dataToQuery = [
'server' => $data['server'],
'audio' => $data['audio'],
'hash' => $data['hash'],
'access_token' => $this->apiKey,
'v' => '5.95',
];
$content =
file_get_contents('https://api.vk.com/method/audio.save?' . http_build_query($dataToQuery));
$content = json_decode($content, true);
return 'audio' . $content['response']['owner_id'] . '_' . $content['response']['id'];
Может кто то сталкивался? Аудио и так мп3, но оно просит переконвертить