Помощь по VK API + JS

foxovsky

Бог флуда
Дней с нами
3.272
Розыгрыши
0
Сообщения
1.197
Репутация
268
Реакции
2.669
Telegram
foxovsky
Хей

Что-то потянуло написать приложение для ВК, где заточил бы все под себя
Ну да проблема в другом - api контакта ну никак не хочет отдавать результаты с правильным токеном пользователя, но с другого ip-адреса.
Объясняю:
Приложение у меня на iFrame - загружено на апач на вдске. Запросы ранее были такого рода:
Код:
$getAudios = json_decode(file_get_contents('https://api.vk.com/method/audio.get?owner_id='. $account_id .'&access_token='. $access_token . ''));
$AudiosCount = $getAudios->count;
Но разрабы вк шибко умные и отвечают 5(пятой) ошибкой на все мои запросы с сервера с использованием access_token.

Недолго прогуглив, узнал что данная проблема решается с помощью запросов на JS из браузера юзера к api серверу вк, затем передавая результат запроса на сервер приложения.

Поскольку в JS я полный ноль, прошу помощи.
Настрочил вот такой код:
Код:
<script src="storage/js/jquery.js"></script>
<script>
$.get(
  "https://api.vk.com/method/audio.get",
  {
    owner_id: "<?php echo $account_id; ?>",
    access_token: "<?php echo $access_token; ?>"
  },
  onAjaxSuccess
);
function onAjaxSuccess(data)
{
  var music_info = data;
}
$.post("index.php?json_music=" + music_info);
</script>
НО, возвращать он ничего не возвращает.
Код:
Notice: Undefined index: json_music in var/vkapp/index.php on line 39
Строка с ошибкой:
Код:
$getAudios = json_decode($_POST["json_music"]);
Да, находится она после js кода.
Если кто-то поможет с реализацией или подкинет нужных статей по этой теме(iFrame приложения и методы использующие Access Token), буду очень благодарен.
 
разве music_info видно за приделом ф-ции? DEBUG смотри иногда, F12 консоль.

Вынеси music_info за ф-цию в начале
Код:
var music_info;
function onAjaxSuccess(data)
{
  music_info = data;
}
 
Код:
<script src="storage/js/jquery.js"></script>
<script>
var music_info;
$.get(
"https://api.vk.com/method/audio.get",
{
owner_id: "<?php echo $account_id; ?>",
access_token: "<?php echo $access_token; ?>"
},
function(data){
music_info = data;
}
);

$.post("index.php?json_music=" + music_info);
</script>
 
  • Like
Реакции: foxovsky
Код:
<script src="storage/js/jquery.js"></script>
<script>
var music_info;
$.get(
"https://api.vk.com/method/audio.get",
{
owner_id: "<?php echo $account_id; ?>",
access_token: "<?php echo $access_token; ?>"
},
function(data){
music_info = data;
}
);

$.post("index.php?json_music=" + music_info);
</script>
Спасибо, но теперь в консоли другая проблема:
Код:
XMLHttpRequest cannot load http://api.vk.com/method/audio.get. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://*тут мой домен*' is therefore not allowed access.
 
Апдейт

Данные получаю:
-AxGGmoGH_w.jpg

Код:
Код:
$.ajax({
    url: 'https://api.vk.com/method/audio.get?owner_id=<?php echo $viewer_id; ?>&access_token=<?php echo $access_token; ?>',
    type: 'GET',
    dataType: 'jsonp',
    crossDomain: true,
    success: function(data){
        console.log(data);
    }    
});
Теперь с отправкой онных на сервер разбираюсь
 
Апдейт

Данные получаю:
-AxGGmoGH_w.jpg

Код:
Код:
$.ajax({
    url: 'https://api.vk.com/method/audio.get?owner_id=<?php echo $viewer_id; ?>&access_token=<?php echo $access_token; ?>',
    type: 'GET',
    dataType: 'jsonp',
    crossDomain: true,
    success: function(data){
        console.log(data);
    }   
});
Теперь с отправкой онных на сервер разбираюсь
ну можно и так, разобрался? таким ж способом можеш на свой сайт на сервер отправлять ajax'ом
 
  • Like
Реакции: foxovsky