Помогите пожалуйста с API вконтакте

315
26 ноября 2016, 17:48

Почему в консоле пишет openapi.js:563 Open api access error?

Почему раньше работало, а сейчас нет?

http://plnkr.co/edit/AihG6swFrzqBQatK9NlZ?p=preview

я пробовал ещё приложение 2903251, попап появляется, то в консоле, почему-то всё равно ошибка

Document

<script language='javascript'>
 VK.init({
    apiId: 5746407
  });
  let cb = response => {
    console.log(response);
    if (response.session) {
      console.log('авторизация прошла успешно');
    } else {
      console.log('ошибка авторизации');
    }
  };
  VK.Auth.login(cb);
    //VK.Auth.revokeGrants()
</script>
</body>
</html>
Answer 1

Это потому, что у вас в настройках приложения в качестве адреса сайта указано http://localhost или вообще ничего не указано. Адрес в настройках приложения должен совпадать с тем, откуда делается запрос, иначе авторизация не сработает.

Также обращайтесь ко ВКонтакте только по протоколу HTTPS.

Answer 2

А почему в консоле не выводит значение переменной userData?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script src="http://vk.com/js/api/openapi.js"></script>
<div class="container">
    <h1 id="headerInfo"></h1>
</div>
    <script src="script.js"></script>
</body>
</html>

window.addEventListener('load', () => {
    VK.init({
            apiId: 5267932
        });

        VK.Auth.login(function(response){
        console.log(response);
            if(response.session){
            //users.get это первый метод и второй параметр это объект
                VK.api('users.get', {'name_case': 'dat'}, response => {
                    if(response.error){
                        alert(response.error.error_msg);
                    }
                    else{
                        let userData = response.response[0]; //первый элемент массива (инфа о нас)  https://vk.com/dev/users.get
                        console.log(userData);
                        headerInfo.textContent = `Музыка на странице ${userData.first_name} ${userData.last_name}`;
                    }
                });
            }
            else{
                alert('Не удалось авторизироваться')
            }
        }, 8);
    })
READ ALSO
jQuery &ldquo;перепрыгивает&rdquo; через блок

jQuery “перепрыгивает” через блок

Текстом описать трудно, посмотрите видео:

256
Что делает этот цикл?

Что делает этот цикл?

Подскажите пожалуйста, что делает этот цикл?

276
куда можно загрузить png чтоб CORS не ругался?

куда можно загрузить png чтоб CORS не ругался?

Если картинка лежит на фейсбуке - я могу ее открыть в canvas, редактировать и скачать, а если картинка лежит на том же сервере где и находится...

271