Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome应用程序,登录用户';电子邮件地址_Javascript_Google Chrome_Google Chrome App - Fatal编程技术网

Javascript Chrome应用程序,登录用户';电子邮件地址

Javascript Chrome应用程序,登录用户';电子邮件地址,javascript,google-chrome,google-chrome-app,Javascript,Google Chrome,Google Chrome App,我搜索过类似的教程,但我看不到如何检索登录到chrome的用户的电子邮件地址。我只能获得chrome.identity api的令牌 因此,获取令牌的示例代码是有效的 chrome.identity.getAuthToken({'interactive': true}, function(token) { console.log('user token: ' + token); }); 但是从这里我如何得到电子邮件 注意:这是针对应用程序而不是扩展的,因此上下文_脚本在auth示例的我

我搜索过类似的教程,但我看不到如何检索登录到chrome的用户的电子邮件地址。我只能获得chrome.identity api的令牌

因此,获取令牌的示例代码是有效的

chrome.identity.getAuthToken({'interactive': true}, function(token) {
    console.log('user token: ' + token);
});
但是从这里我如何得到电子邮件

注意:这是针对应用程序而不是扩展的,因此上下文_脚本在auth示例的我的清单中不起作用。chrome.identity.getProfileUserInfo也适用于测试版37,我也尝试过,但enail是空的


我别无选择,但我知道有办法收到电子邮件。

哈哈,回答我自己的问题

简短回答:您只需在清单文件中添加电子邮件的范围

详细回答:我必须使用google plus api。谷歌已经弃用了OpenID2.0,现在使用GooglePlus登录和api。 因此,我在上面提到,我在使用xhr方法调用Google Plus时没有获得电子邮件地址=“得到,url='h='ttps://www.googleapis.com/plus/v1/people/me'. 因此,回复只显示了姓名、性别、图像等基本信息,而没有显示电子邮件。要获取电子邮件,必须在清单文件中添加电子邮件令牌,如示例所示

  "permissions": ["identity",
            ...,
            ],
    "oauth2": {
    // client_id below is specifc to the application key. Follow the
            // documentation to obtain one for your app.
            "client_id": xyz,
            "scopes": ["https://www.googleapis.com/auth/plus.login",
                       "https://www.googleapis.com/auth/userinfo.email"] **<-this one**
    }
    ....
“权限”:[“标识”,
...,
],
“oauth2”:{
//下面的客户端id是应用程序密钥指定的。请按照
//获取应用程序的文档。
“客户id”:xyz,
“范围”:[“https://www.googleapis.com/auth/plus.login",

"https://www.googleapis.com/auth/userinfo.email“]**作为更新,这里是一种更简单的获取电子邮件的方法:

  • 您必须将“标识”和“identity.email”添加到清单文件的权限部分

  • 因此,使用getProfileUserInfo应该可以做到以下几点:

    chrome.identity.getAuthToken({'interactive': true}, function(token) {
       chrome.identity.getProfileUserInfo(
           function(info){console.log(info.email)}
       );
    }
    

  • 你可能需要等待一段时间,直到
    chrome.identity.getProfileUserInfo
    稳定下来。这应该复制到答案框中,因为这是答案。马克,我不明白你上面的意思。他的意思是Xan的评论应该是答案,而不是评论。然后,你的工作就是接受答案,这样这个问题就可以解决了标记已解决。谢谢@sowbug我是新来stack的,实际上这不是答案。我已经在下面回答了我自己。