Не работает audio.get через VKApi на js

479
24 ноября 2016, 10:25

Итак, первым делом я сделал это:

<script src="http://vk.com/js/api/openapi.js" type="text/javascript"></script>

После чего в index.js написал это:

VK.init({
   apiId: ********
   });
VK.Auth.login(function(response) {
   });
VK.api("audio.get", {uid:viewer_id,count:count}, function(data) {
   alert(data.response);
   var obj_respone = eval('('+ data.response +')');;
   for(var i=0; i<data.response.length; i++){
     document.getElementById('tracks').innerHTML+="<a href="+data.response[i].url+">"+data.response[i].artist +'-'+data.response[i].title+"</a><br />";
   }
   });

Затем в терминале написал electron. Открывается дефолтное окно авторизации, авторизируюсь, и всё. Ничего не работает. Очень прошу помочь.

Answer 1
  1. При авторизации пользователя вы не запрашиваете права доступа к аудиозаписям.
  2. У вас ошибка при конкатенации строки возле href - у атрибута не будет кавычек.
  3. VK.Auth.login() - асинхронный метод.
  4. В цикле вы перебираете объект response, а надо перебирать объект response.items, который содержит в себе массив аудиозаписей.

Пример кода:

VK.init({
    apiId: 123456
});
VK.Auth.login(function (response) {
    VK.api('audio.get', {
        uid: viewer_id,
        count: count
    }, function (data) {
        if (data.error) {
            alert('VK API error #' + data.error.error_code + ': ' + data.error.error_msg);
            return;
        }
        for (var i = 0; i < data.response.items.length; i++) {
            document.getElementById('tracks').innerHTML += '<a href="' + data.response.items[i].url + '">' + data.response.items[i].artist + '-' + data.response.items[i].title + '</a><br>';
        }
    });
}, 8); // доступ к аудиозаписям

UPD

Похоже, что вы разрабатываете под Electron. Если это так, то Open API у вас работать не будет, потому что Open API предназначен для веб-сайтов с доменным именем. Вам надо использовать прямые запросы к API и создать во ВК приложение типа standalone.

READ ALSO
Битрикс24 формы

Битрикс24 формы

Доброго времени суток. Возникла проблема есть формы битрикса Они подгружаются в фрейме, а хочется их прикрепить на странице, там уже есть...

508
Вопрос по js - selecet

Вопрос по js - selecet

Как можно сделать так, чтобы при выборе в селекте был полный список - option. Но когда какой-то option выбран - убирать все остальные варианты? Желательно...

433
Как с помощью d3.js сделать стрелочки вместо линий?

Как с помощью d3.js сделать стрелочки вместо линий?

Рисую граф, переделав force. js примера связи d3 и networkx.

505