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

287
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 “перепрыгивает” через блок

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

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

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

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

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

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

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

245