弃用 Google 加
Deprecation of Google plus
我收到一封来自 Google 的电子邮件,说所有 Google+ API 的使用都将被关闭。我目前使用 googleAPI.google.plus 来让人们使用 Google 登录。此插件是否要添加更新以支持使用 Google 授权用户的新方式?
环境详情:
OS: Mac OS X
Node.js 版本:v 10.8.0
npm 版本:v6.5.0
googleapis 版本:33
const googleAPI = require('googleapis');
const plus = googleAPI.google.plus({
version: 'v1',
auth: configs.googleAPIKey // specify your API key here
});
// Check if Google tokens are valid
plus.people.get({
userId: googleUserId,
fields: 'displayName,emails,name,image',
access_token: googleAccessToken
})
.then((user) => {
logger.debug('From google: ' + util.inspect(user.data));
logger.debug('First Name: ' + user.data.name.givenName);
logger.debug('Last Name: ' + user.data.name.familyName);
})
您没有说明您是如何使用该对象进行登录的,所以回答起来有点困难。
但是,您可以使用
之类的东西创建 googleapis package already supports sign-ins with an OAuth2 client
const {google} = require('googleapis');
const oauth2Client = new google.auth.OAuth2(
YOUR_CLIENT_ID,
YOUR_CLIENT_SECRET,
YOUR_REDIRECT_URL
);
然后您可以获得 URL 将他们重定向到这样他们就可以使用
之类的东西登录
const url = oauth2Client.generateAuthUrl({
// If you only need one scope you can pass it as a string
scope: scopes
});
然后将他们重定向到 url
。一旦他们登录 URL,他们将被重定向到您指定为 YOUR_REDIRECT_URL
的 URL,其中将包含一个名为 code
的参数。您将需要此代码来交换凭据,包括身份验证令牌
const {tokens} = await oauth2Client.getToken(code)
oauth2Client.setCredentials(tokens);
如果您只需要使用 API Key(这是您的示例所暗示的),那么您应该只需要像现在对 API 调用一样包含密钥你需要做的。但这与授权无关。
既然你想要获取个人资料信息,你可以使用 userinfo 或 People API 之类的东西,然后选择你想要的用户字段。
使用用户信息可能类似于
oauth2client.userinfo.get().then( profile => {
// Handle profile info here
});
people.get 方法让您有更多的控制权,可能类似于
const people = google.people({
version: "v1"
});
const fields = [
"names",
"emailAddresses",
"photos"
];
people.people.get({
resourceName: "people/me",
personFields: fields.join(',')
})
.then( user => {
// Handle the user results here
});
我收到一封来自 Google 的电子邮件,说所有 Google+ API 的使用都将被关闭。我目前使用 googleAPI.google.plus 来让人们使用 Google 登录。此插件是否要添加更新以支持使用 Google 授权用户的新方式?
环境详情: OS: Mac OS X Node.js 版本:v 10.8.0 npm 版本:v6.5.0 googleapis 版本:33
const googleAPI = require('googleapis');
const plus = googleAPI.google.plus({
version: 'v1',
auth: configs.googleAPIKey // specify your API key here
});
// Check if Google tokens are valid
plus.people.get({
userId: googleUserId,
fields: 'displayName,emails,name,image',
access_token: googleAccessToken
})
.then((user) => {
logger.debug('From google: ' + util.inspect(user.data));
logger.debug('First Name: ' + user.data.name.givenName);
logger.debug('Last Name: ' + user.data.name.familyName);
})
您没有说明您是如何使用该对象进行登录的,所以回答起来有点困难。
但是,您可以使用
之类的东西创建 googleapis package already supports sign-ins with an OAuth2 clientconst {google} = require('googleapis');
const oauth2Client = new google.auth.OAuth2(
YOUR_CLIENT_ID,
YOUR_CLIENT_SECRET,
YOUR_REDIRECT_URL
);
然后您可以获得 URL 将他们重定向到这样他们就可以使用
之类的东西登录const url = oauth2Client.generateAuthUrl({
// If you only need one scope you can pass it as a string
scope: scopes
});
然后将他们重定向到 url
。一旦他们登录 URL,他们将被重定向到您指定为 YOUR_REDIRECT_URL
的 URL,其中将包含一个名为 code
的参数。您将需要此代码来交换凭据,包括身份验证令牌
const {tokens} = await oauth2Client.getToken(code)
oauth2Client.setCredentials(tokens);
如果您只需要使用 API Key(这是您的示例所暗示的),那么您应该只需要像现在对 API 调用一样包含密钥你需要做的。但这与授权无关。
既然你想要获取个人资料信息,你可以使用 userinfo 或 People API 之类的东西,然后选择你想要的用户字段。
使用用户信息可能类似于
oauth2client.userinfo.get().then( profile => {
// Handle profile info here
});
people.get 方法让您有更多的控制权,可能类似于
const people = google.people({
version: "v1"
});
const fields = [
"names",
"emailAddresses",
"photos"
];
people.people.get({
resourceName: "people/me",
personFields: fields.join(',')
})
.then( user => {
// Handle the user results here
});