Javascript Chrome扩展:如何获取用户名?
我正在创建一个Google chrome扩展。对于某些功能,我需要用户的系统登录名(无密码)。通过使用JavaScript,不可能做到这一点 有人建议使用NPAPI,但我不知道,所以我退出了 接下来,我将尝试在Chrome浏览器中获取用户名。但仍然没有成功 我试着用一些东西,比如:Javascript Chrome扩展:如何获取用户名?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在创建一个Google chrome扩展。对于某些功能,我需要用户的系统登录名(无密码)。通过使用JavaScript,不可能做到这一点 有人建议使用NPAPI,但我不知道,所以我退出了 接下来,我将尝试在Chrome浏览器中获取用户名。但仍然没有成功 我试着用一些东西,比如: var currentUser; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(data) { if (xhr.read
var currentUser;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data) {
if (xhr.readyState == 1) {
currentUser = null;
if (xhr.status == 200)
{
var re = new RegExp(/<b class="?gb4"?>[\s]*([^<]+@[^<]+) <\/b>/i);
var m = re.exec(xhr.responseText);
if (m && m.length == 2) {
currentUser = m[1];
}
}
console.log("Currently logged user (on google.com): " + currentUser);
}
};
xhr.open('GET', ' https://myaccount.google.com/?pli=1', false);
xhr.send(); `
var-currentUser;
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=函数(数据){
如果(xhr.readyState==1){
currentUser=null;
如果(xhr.status==200)
{
var re=new RegExp(/[\s]*([^首先,您说您需要此登录信息来识别用户,并将其用作主键
自动取消系统登录名的资格:它们不是唯一的
现在,让我们回到登录的Chrome用户。谷歌帐户是相当独特的
这里有两种方法
Chrome既是电子邮件,也是帐户的唯一ID,这对你来说可能更好
您需要“identity”
和“identity.email”
权限。然后:
chrome.identity.getProfileUserInfo(function(userInfo) {
/* Use userInfo.email, or better (for privacy) userInfo.id
They will be empty if user is not signed in in Chrome */
});
另一种方法是在您的服务上使用谷歌的OAuth。同样,请参阅chrome.identity
文档
Chrome.identity有一个getProfileUserInfo方法,但它只提供主用户的详细信息
还有一种选择:
当你打开chrome时,你启动到主屏幕上,你应该能够看到右上角的一个圆圈,显示登录用户的图像。你可以使用DOM访问它。一旦你这样做,你将能够获得所有登录用户的信息。谢谢Xan的帮助,我正在使用chrome.identity.getProfileUserInfo a这满足了我的目的,但在应用它时,我得到了错误。在清单中,我添加了权限“permissions”:[“tabs”,“idle”,“identity”,“identity.email”],在js文件中,我添加了chrome.identity.getProfileUserInfo(函数(userInfo){console.log(userInfo);//console.log(userInfo.id);});只是为了查看O/P。然而,我得到了错误Uncaught TypeError:无法读取未定义的属性“getProfileUserInfo”,我必须在代码中改进哪些内容,我是否需要从google控制台获得一些密钥?我需要改进什么?我还需要在清单中添加其他内容吗?您是否试图从内容脚本中执行此操作(该API在那里不可用)?你重新加载扩展了吗?从后台脚本,而不是内容脚本。很抱歉,最近的评论,xan给出的答案有效,问题是它只对chrome应用有效,我在chrome扩展上尝试过。谢谢你的支持,现在我更明白了。是的。除了这是一个特权chrome://
页面,无法访问被扩展所困扰。@Xan:哦,我不知道。我必须做一个扩展,循环使用所有登录的gmail帐户,所以为此我做了我写的,它工作得很好。它确实适用于gmail网站DOM,但不适用于新的标签页。@Xan:哦,非常感谢你告诉我这个!