如何在Qt C++;在OAuth2谷歌认证之后?

如何在Qt C++;在OAuth2谷歌认证之后?,qt,oauth-2.0,Qt,Oauth 2.0,我的基于Qt的桌面应用程序为那些拥有有效google帐户的人提供了某些功能。为此,我在我的应用程序中实现了基于OAuth2的登录机制。 主要参考资料如下: 简而言之,这解释了一种通过OAuth2协议使用浏览器对用户进行身份验证的方法。当然可以使用QNetworkAuth类。 我得到了“授权认证”的回复,因为我已经正确地完成了OAuth2。但我需要获得登录者的电子邮件ID。 这篇博客的最后一句话谈到了与我的需求类似的东西。但这对我不起作用。给 如何获取登录人员的电子邮件id?我们在上的帖子中写到了

我的基于Qt的桌面应用程序为那些拥有有效google帐户的人提供了某些功能。为此,我在我的应用程序中实现了基于OAuth2的登录机制。 主要参考资料如下: 简而言之,这解释了一种通过OAuth2协议使用浏览器对用户进行身份验证的方法。当然可以使用QNetworkAuth类。 我得到了“授权认证”的回复,因为我已经正确地完成了OAuth2。但我需要获得登录者的电子邮件ID。 这篇博客的最后一句话谈到了与我的需求类似的东西。但这对我不起作用。给
如何获取登录人员的电子邮件id?

我们在上的帖子中写到了这一点,并在其中一个代码块中留下了您需要的代码。自您编写本文以来,一些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();
    });
});
connect(this->google,&;QOAuth2AuthorizationCodeFlow::grated,[=](){
const QString token=this->google->token();
发出令牌(token);
//或者,只需出于您的目的使用令牌即可
自动回复=此->谷歌->获取(QUrl(“https://people.googleapis.com/v1/{resourceName=people/me}”);
连接(回复和QNetworkReply::完成,[回复](){
qInfo()readAll();
});
});
它怎么不工作?服务器回答“禁止”