我想显示"使用Google +"单击按钮,使用户的名/姓在屏幕上的其他位置显示。
在以后的版本中,我希望用户可以通过3种方式登录我的Chrome扩展程序,即Google+,Facebook和访客。这就是它的流程:
用户启动应用
应用程序窗口打开(全屏),我的用户界面将显示3个按钮,为他们提供3个登录选项。
在按下Google+或Facebook按钮时,我想将它们作为唯一用户添加到我自己的数据库中**并向他们显示我的主用户界面,其名称写在屏幕上*。
- 醇>
数据库将保存用户操作*,这些操作将由我的扩展程序的各个方面使用。例如。自定义UI元素(例如颜色,布局)。
*。不适用于客人。
**。如果用户已经保存了数据,我的扩展程序将在绘制UI时从数据库中提取其唯一的自定义。
我还没有获得UI定制,数据库实现或Facebook身份验证。但我认为,如果他们了解我更广泛的目标,可能有助于任何人回答。
我已按照此页面上的说明(https://developer.chrome.com/apps/app_identity)修复了我的应用ID并获取了我的OAuth2客户端ID。所以我可以在我的background.js中运行这段代码:
chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
// Use the token.
});
我实际上正在使用StackOverflow上给出的示例进行测试,这很好。这是我的整个背景.js:
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('window.html', {
state: "fullscreen",
});
chrome.identity.getAuthToken({
interactive: true
}, function(token) {
if (chrome.runtime.lastError) {
alert(chrome.runtime.lastError.message);
return;
}
var x = new XMLHttpRequest();
x.open('GET', 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=' + token);
x.onload = function() {
alert(x.response);
};
x.send();
});
});
但是,这只会启动请求其电子邮件的交互式身份验证。这是我的manifest.json(客户端ID已删除)的相关部分:
"oauth2": {
"client_id": "[deleted]",
"scopes": [
"https://www.googleapis.com/auth/userinfo.email"
]
}
答案 0 :(得分:2)
您可以使用(并添加)profile scope来检索经过身份验证的用户的个人资料信息。请注意,您使用的范围可能已被弃用,如引用文档中所示。
这是基本的登录范围。此范围执行以下操作:
- 它要求您的应用访问经过身份验证的用户的基本个人资料信息。
- 通过让您在对Google+ API的任何通话中使用“我”(代表经过身份验证的用户)替换Google+用户ID,即可让您知道当前经过身份验证的用户是谁。
- 它可让您的网络应用程序访问无线Android应用安装。
醇>
希望这有帮助!