我的基于Qt的桌面应用程序正在为拥有有效Google帐户的用户提供某些功能。为此,我在我的应用程序中实现了基于OAuth2的登录机制。 主要参考是这个链接: http://blog.qt.io/blog/2017/01/25/connecting-qt-application-google-services-using-oauth-2-0/ 简而言之,这解释了使用具有OAuth2协议的浏览器对用户进行身份验证的方法。当然使用QNetworkAuth类。 由于我已正确完成OAuth2,因此我收到了“Authentication GRANTED”回复。但我需要获取记录人员的电子邮件ID。 本博客的最后陈述涉及与我的需求类似的内容。但这对我不起作用。给予 如何获取登录人的电子邮件ID?
答案 0 :(得分:0)
我们在 How To Authenticate with Google SSO in Qt 上的帖子中对此进行了讨论,并且在其中一个代码块中我们留下了您需要的代码。自从您撰写本文以来,一些 Google API 发生了变化,特别是 People API:
connect(this->google, &QOAuth2AuthorizationCodeFlow::granted, [=](){
const QString token = this->google->token();
emit gotToken(token);
// Alternatively, just use the token for your purposes
auto reply = this->google->get(QUrl("https://people.googleapis.com/v1/{resourceName=people/me}"));
connect(reply, &QNetworkReply::finished, [reply]() {
qInfo() << reply->readAll();
});
});