Google API已激活,但给出了错误; 旧版People API之前尚未在项目中使用过,或者已被禁用。通过访问https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project=启用它,然后重试。如果您最近启用了此API,请等待几分钟,以便该操作传播到我们的系统并重试。
答案 0 :(得分:16)
除了Google+ API外,您不需要安装其他任何API,例如Google Drive API,Google Sheets API或其他
由于“ passport-google-oauth”:“ ^ 1.0.0”
,该错误即将到来只需将版本“ passport-google-oauth”:“ ^ 1.0.0”更改为“ passport-google-oauth”:“ ^ 2.0.0”,然后删除node_modules和package.lock.json文件并运行“ npm”我”
就这样
答案 1 :(得分:2)
在Google+ API Shutdown于2019年3月7日之前,people.get和people.getOpenIdConnect方法可用于请求人员的个人资料。
为避免使用支持登录的这些方法破坏现有的集成,如果用户授权,新的最小实现仅返回该功能所需的基本字段,例如姓名和电子邮件地址。 Legacy People API是这些方法将在现有HTTP端点上为现有调用方保留的方法。
Legacy People API为旧版Google+ API的有限新实现提供了服务,这是维护登录功能所必需的people.get和people.getOpenIdConnect方法。现有的原始方法调用者可以在Google+ API关闭时将其迁移到Google Sign-in或Google People API等推荐的替代方法中。
谢谢
答案 2 :(得分:1)
在这种情况下,我面临着同样的问题。这是我为修复它所做的。
情况:
当我运行应用程序并单击“使用Google登录”时,发生了什么事?
我如何解决?
注意:我以前的代码仍然使用profile._json.image.url来获取配置文件图像。实际上,此响应不再存在。所以我删除了这段代码。 再见Google+ 谢谢Google People API。
答案 3 :(得分:0)
启用Google Contacts API和Google+ API可以为我解决此问题。
答案 4 :(得分:0)
您好,我最近对同一问题感到沮丧。如Ilan Laloum所述,Google + API已完全停用新项目。
我发现 Google People API 的工作方式类似。以下示例基于GCP中的书架教程。可以在此处查看源代码:https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf(分支appengine/go111/cloudsql
)
import people "google.golang.org/api/people/v1"
...
// retrieves the profile of the user associated with the provided OAuth token
func fetchProfile(ctx context.Context, tok *oauth2.Token) (*people.Person, error) {
peopleService, err := people.NewService(ctx, option.WithTokenSource(bookshelf.OAuthConfig.TokenSource(ctx, tok)))
if err != nil {
return nil, err
}
return peopleService.People.Get("people/me").
PersonFields("names,coverPhotos,emailAddresses").
Do()
}
此方法需要上下文和OAuth令牌,就像以前的Google+ API一样。 peopleService
以类似的方式初始化。
peopleService.People.Get("people/me")
将准备一个查询,以获取所连接用户的个人资料。然后PersonFields("names,coverPhotos,emailAddresses")
是配置文件字段的过滤器。请求的这一部分是强制性的。最终Do()
将执行请求。
答案 5 :(得分:0)
可以使用passport-google-token
npm install passport-google-token
const GoogleStrategy = require('passport-google-token').Strategy;
// Google OAuth Strategy
passport.use('googleToken', new GoogleStrategy({
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET
}, async (accessToken, refreshToken, profile, done) => {
try {
console.log('creating a new user')
const newUser = new User({
google: {
id: profile.id,
email: profile.emails[0].value
}
});
await newUser.save();
done(null, newUser);
} catch (error) {
done(error, false, error.message);
}
}));
答案 6 :(得分:0)
我也遇到了同样的问题,但是我的Rails应用却出现了。因此,我通过在终端上运行bundle update devise omniauth omniauth-google-oauth2
来升级omniauth gem,从而解决了该问题。
答案 7 :(得分:0)
我也遇到了同样的问题。使用旧库、为您的项目启用 google people Api 并根据您的 php 版本从此 link 下载库并集成它时可能会出现此问题。