如何从vk.api获取电子邮件地址?

6

我正在尝试获取电子邮件地址。成功登录后,我有名字、姓氏,除了电子邮件之外的所有信息。请帮忙。

VK.Auth.login(function (response) {
            if (response.session) {


            } else {

            }
        }, 4194304);

电子邮件仅用于网站(掩码+4194304)。https://vk.com/dev/permissions - Ivan Ivanov
5个回答

7
当您获得访问令牌时,VK还会提供电子邮件和用户ID,但您需要特定的权限才能获取它们 - "email"。

那是正确的答案!只是以那种方式进行了标识。如果我能先阅读这个,然后再到互联网上其他地方查找就好了。 :) - Mr.TK

1

是的,这种方法无法获取电子邮件。但是可以通过OAuth方式(对于vk.com/dev/auth_sites网站)获取电子邮件,电子邮件将与令牌一起在GET参数中返回。

在Coffescript/Javascript中,您可以使用window.open(...)。

appId = 'your app id'
redirectUri = 'your redirect uri'
url = 'https://oauth.vk.com/authorize?client_id='+appId+'&display=popup&redirect_uri='+redirectUri+'&response_type=token&scope=email'

newWin = window.open(url, 'vk-login', 'width=665,height=370')

之后您有两种方法获取电子邮件

  1. 在重定向URI处理程序上(服务器方式)
  2. 重定向到您网站的任何地方,每秒检查newWin.location.href,当它变为if (newHref.indexOf(redirectUri) != -1),然后提取参数电子邮件(客户端方式)

1

上面的作者(Evgeniy Shinkarenko)已经根据你提供的文档描述了问题,他询问为什么它不起作用。 - Vasiliy Mazhekin

0

没有办法做到这一点,Vk是一个特定的社交网络。


0

您可以使用 window.open

var url = 'https://oauth.vk.com/authorize?client_id=APP_ID&scope=email&redirect_uri=http://yoursite.com&response_type=token'

        var newWin = window.open(url, 'vk-login', 'width=665,height=370')
        newWin.onload = function() {
          var hash = newWin.location.hash
          console.log(hash)
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接