Проблема с загрузкой аудио в ВК

Рейтинг: 2Ответов: 1Опубликовано: 21.04.2015

Необходимо загрузить аудио файл в вк. Для этого я использую Kate VK API. Выглядит это так:

public void uploadAudioToWall(String filePath, String url){
    try {
        HttpClient client=new DefaultHttpClient();
        HttpPost httpPost=new HttpPost(url);
        MultipartEntity albumArtEntity = new MultipartEntity();
        httpPost.addHeader("Content-type", "multipart/form-data; boundary=*****");
        albumArtEntity.addPart("file", new FileBody(new File(filePath)));

        httpPost.setEntity(albumArtEntity);
        HttpResponse response=client.execute(httpPost);
        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
        StringBuilder builder = new StringBuilder();
        for (String line; (line = reader.readLine()) != null;) {
            builder.append(line).append("\n");
        }
        JSONObject photoObject = new JSONObject(builder.toString());
        Log.e("FILE", filePath);
        Log.e("NEW URI", url);
        Log.e("res", photoObject.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Вызываю функцию так:

String upurl = api.getAudioUploadServer();
uploadAudioToWall(path, upurl);

В переменной path хранится путь к файлу (например, "/storage/emulated/0/Rec/22-41-39_21-3-2015.mp3")

В ответ я получаю следующее:

{
  "redirect":"http:\/\/vk.com\/audio.php?act=done_add&mid=120146182&aid=0&gid=0&server=611229&audio=%7B%22error%22%3A-2%7D&hash=7343021a24966d4e0fe12e485d53aa3d",
  "server":611229,
  "audio":"%7B%22error%22%3A-2%7D",
  "hash":"7343021a24966d4e0fe12e485d53aa3d"
}

Почему же он мне возвращает "audio":"%7B%22error%22%3A-2%7D"? Помогите найти ошибку.

P.S. Токен есть, приложение включено и получает доступ к аудиозаписям.

Ответы

▲ 8Принят

Ответ на ваш вопрос очень простой:

"audio":"%7B%22error%22%3A-2%7D" 

расшифровывается в error: -2. https://vk.com/dev/errors

2 Приложение выключено. Необходимо включить приложение в настройках https://vk.com/editapp?id={Ваш API_ID} или использовать тестовый режим (test_mode=1)

EDIT:

Раз вы так уверены, что у вас всё правильно с приложением и настройками, то следующая мысль:

Какой у вас размер mp3 файла?

ВК сделан на php, и там есть определенные лимиты на размеры загружаемых файлов. Ошибка с кодом 2 при загрузке файлов в php означает что превышен такой лимит на размер файла.

http://php.net/manual/ru/features.file-upload.errors.php

EDIT:

Можно проверить сам файл, загрузить другой. Проблема может быть в кодеках.