我有一个扩展,一些用户为此付出了金钱或努力。我希望能够通过他们的电子邮件地址来识别这些用户,所以我可以显示“谢谢!” 下次他们加载扩展程序时。
有没有办法从谷歌浏览器获取用户的电子邮件地址?
我有一个扩展,一些用户为此付出了金钱或努力。我希望能够通过他们的电子邮件地址来识别这些用户,所以我可以显示“谢谢!” 下次他们加载扩展程序时。
有没有办法从谷歌浏览器获取用户的电子邮件地址?
好的,解决了她。这个网站基本上是这样描述的:
http://smus.com/oauth2-chrome-extensions/
但并不是所有的都在那里解释。所以:
首先,您需要一个 API 客户端 ID 和客户端密码,以便用户授权您使用他们的详细信息。以下步骤将以适用于 chrome 扩展的方式进行设置:
其次,您需要 oauth2 javascript 库,可在此处获得: https ://github.com/borismus/oauth2-extensions/tree/master/lib
您需要将其放在与您的 html 文件位于同一目录中的名为 oauth2 的文件夹中。
在您的 html 文件中添加以下内容:
<script type="text/javascript" src="oauth2/oauth2.js"></script>
<script type="text/javascript">
var googleAuth = new OAuth2('google', {
client_id: ' $(YOUR CLIENT ID HERE) ',
client_secret: ' $(YOUR CLIENT SECRET HERE) ',
api_scope: 'https://www.googleapis.com/auth/userinfo.email'
});
googleAuth.authorize(function() {
// We should now have googleAuth.getAccessToken() returning a valid token value for us
// Create an XMLHttpRequest to get the email address
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if( xhr.readyState == 4 ) {
if( xhr.status == 200 ) {
var parseResult = JSON.parse(xhr.responseText);
// The email address is located naw:
var email = parseResult["email"];
}
}
}
// Open it up as GET, POST didn't work for me for the userinfo
xhr.open("GET","https://www.googleapis.com/oauth2/v1/userinfo",true);
// Set the content & autherization
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', "OAuth " + googleAuth.getAccessToken() );
xhr.send(null);
// Debugging stuff so we can see everything in the xhr. Do not leave this in production code
console.log(xhr);
});</script>
在您的 manifest.json 中,您需要:
“权限”:[“https://accounts.google.com/o/oauth2/token”、“https://www.googleapis.com/oauth2/v1/userinfo”]
同样在清单文件中,您将需要:
"content_scripts": [ {
"matches": ["http://www.google.com/robots.txt*"],
"js": ["oauth2/oauth2_inject.js"],
"run_at": "document_start" }
那应该很照顾它。
我正在尝试自己做类似的事情。我正在尝试获取基于他们的谷歌帐户的 ID,以便我可以为用户存储一些云数据。我相信您可以通过相同的方法获取电子邮件地址,但他们必须批准权限。如果我成功了,我会发布代码。现在我正在尝试获取: http ://smus.com/oauth2-chrome-extensions/
使用我自己的 google api 密钥和那个。
到目前为止没有太大的成功。花了最后两个小时实现了唯一具有良好文档的方法,它告诉我该功能已被贬值。毕竟可能不得不尝试让这个 oauth2 垃圾工作。