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

Тема в разделе "PHP / Python / Ruby / Perl / JavaScript", создана пользователем foxovsky, 16 ноя 2015.

Статус темы:
Закрыта.
  1. foxovsky

    foxovsky Красноволосая сучара
    Команда форума Куратор раздела

    Регистрация:
    13 апр 2015
    Сообщения:
    1.291
    Симпатии:
    1.598
    Розыгрышей:
    0
    Репутация:
    267
    Хей

    Что-то потянуло написать приложение для ВК, где заточил бы все под себя
    Ну да проблема в другом - 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), буду очень благодарен.
     
  2. BFG100

    BFG100 CsGoBuffPro

    Регистрация:
    18 авг 2014
    Сообщения:
    153
    Симпатии:
    23
    Розыгрышей:
    0
    Репутация:
    6
    разве music_info видно за приделом ф-ции? DEBUG смотри иногда, F12 консоль.

    Вынеси music_info за ф-цию в начале
    Код:
    var music_info;
    function onAjaxSuccess(data)
    {
      music_info = data;
    }
    
     
  3. BFG100

    BFG100 CsGoBuffPro

    Регистрация:
    18 авг 2014
    Сообщения:
    153
    Симпатии:
    23
    Розыгрышей:
    0
    Репутация:
    6
    Код:
    <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>
    
     
    Последние данные очков репутации:
    the__all: 1 Очко 16 ноя 2015
    foxovsky нравится это.
  4. foxovsky

    foxovsky Красноволосая сучара
    Команда форума Куратор раздела

    Регистрация:
    13 апр 2015
    Сообщения:
    1.291
    Симпатии:
    1.598
    Розыгрышей:
    0
    Репутация:
    267
    Спасибо, но теперь в консоли другая проблема:
    Код:
    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.
    
     
  5. foxovsky

    foxovsky Красноволосая сучара
    Команда форума Куратор раздела

    Регистрация:
    13 апр 2015
    Сообщения:
    1.291
    Симпатии:
    1.598
    Розыгрышей:
    0
    Репутация:
    267
    Апдейт

    Данные получаю:
    [​IMG]
    Код:
    Код:
    $.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);
        }    
    });
    
    Теперь с отправкой онных на сервер разбираюсь
     
  6. BFG100

    BFG100 CsGoBuffPro

    Регистрация:
    18 авг 2014
    Сообщения:
    153
    Симпатии:
    23
    Розыгрышей:
    0
    Репутация:
    6
    ну можно и так, разобрался? таким ж способом можеш на свой сайт на сервер отправлять ajax'ом
     
    foxovsky нравится это.
Статус темы:
Закрыта.

Поделиться этой страницей

  • Яндекс.Метрика
  • Рейтинг@Mail.ru