Как получить email через API ВКонтакте?

Для авторизации пользователей на сайте создал приложение, разместил кнопку на своем сайте. Как при авторизации пользователя получить его email?

Мой код:
<div id="vk_login_button" onclick="VK.Auth.login(authInfo, VK.access.EMAIL);">Войти ВКонтакте</div>
  <script type="text/javascript">
    VK.init({
      apiId: MY_APP_ID
    });

    function authInfo(response) {
      if (response.session) {
        //alert('user: '+response.session.mid);     
        getInitData();
      }
    }

    function getInitData() {
        var code;
        code = 'return {'
        code += 'me: API.getProfiles({uids: API.getVariable({key: 1280}),  fields: "photo"})[0]';
        code += '};';
        VK.Api.call('execute', { 'code': code }, onGetInitData);
    }
    function onGetInitData(data) {
        var r;
        if (data.response) {
            r = data.response;
            if (r.me) {              
                                 
                alert(r.me.first_name + ' ' + r.me.last_name + '<br/><a href="http://vkontakte.ru/id' + r.me.uid + '">  ' + r.me.photo);

            }
        }
    }

    VK.Auth.getLoginStatus(authInfo);
    VK.UI.button('vk_login_button');</script>
  • Вопрос задан
  • 39672 просмотра
Решения вопроса 3
Jeket
@Jeket Автор вопроса
Краткий алгоритм действий:
1) Регистрируешь приложение в ВКонтакте
2) Формируешь ссылку как в документации API https://vk.com/dev/auth_sites (если нужен email, то указываешь &scope=email )
3) После получения кода делаешь запрос на получение access_token, в ответе приходит id и email пользователя
Ответ написан
Комментировать
irtek
@irtek
Wordpress-addicted
Мыло ВК отдается вместе с токеном, а не при запросе информации о юзере.
Ответ написан
Комментировать
@WTFRU7
Когда авторизуете человека на сайте, укажите в параметре scope - email. Почитать можно здесь -https://vk.com/dev/permissions и здесь https://vk.com/dev/auth_sites
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
До недавнего времени VK API не выдавал мыло на внешние запросы. Но, похоже, с окончательным уходом Дурова, ситуация начинает меняться. Буквально сегодня я озвучил клиенту, что получение имейла невозможно, а он мне показал скриншот, сделанный 24 апреля этого года, на котором всплывшее окошечко как раз давало доступ к электронному адресу. То есть, факт - теперь это возможно. Как - я пока еще сам копаю. В доках не нашел. Подписываюсь на тему, может кто-то раньше найдет решение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы