CINXE.COM

OAuth2.0 через VK, получение email

<!DOCTYPE html><html lang="en" itemscope itemtype="http://schema.org/QAPage"><head><!-- Yandex.RTB --><script>window.yaContextCb=window.yaContextCb||[]</script><script src="https://yandex.ru/ads/system/context.js" async></script><!-- Yandex.RTB --><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="apple-touch-icon-precomposed" sizes="57x57" href="/static/images/favicons/apple-touch-icon-57x57.png" /><link rel="apple-touch-icon-precomposed" sizes="72x72" href="/static/images/favicons/apple-touch-icon-72x72.png" /><link rel="apple-touch-icon-precomposed" sizes="114x114" href="/static/images/favicons/apple-touch-icon-114x114.png" /><link rel="apple-touch-icon-precomposed" sizes="120x120" href="/static/images/favicons/apple-touch-icon-120x120.png" /><link rel="apple-touch-icon-precomposed" sizes="144x144" href="/static/images/favicons/apple-touch-icon-144x144.png" /><link rel="apple-touch-icon-precomposed" sizes="152x152" href="/static/images/favicons/apple-touch-icon-152x152.png" /><link title="EVILEG - Social network of programmers" rel="alternate" type="application/rss+xml" href="/en/feed/" /><link title="EVILEG - Forum" rel="alternate" type="application/rss+xml" href="/en/forum/feed/" /><title>OAuth2.0 через VK, получение email</title><meta property="og:title" content="OAuth2.0 через VK, получение email" /><meta property="og:type" content="article" /><meta property="og:url" content="https://evileg.com/en/forum/topic/1850/" /><meta property="og:image" content="https://evileg.com/static/images/favicons/favicon.ico" /><meta property="og:site_name" content="EVILEG" /><meta name="google-site-verification" content="vVTpO8SvQTo0QU2hU-zDTBHgHzqr2CGx7ACdQHPlLes" /><meta name="yandex-verification" content="c58ddaad8c500539" /><meta name="wot-verification" content="5e851b19f7a76433f3dc"/><meta name="description" content="OAuth2.0 через VK, получение email. Разбираюсь довольно большое количество времени с OAuth через вк, используя QOAuth2AuthorizationCodeFlow и застрял на вопросе получения email пользователя, разобрался с тем как получать всю осталь"/><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"><link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" ><link href="/static/css/custom.css?9" rel="stylesheet"><script src="/static/js/jquery-3.3.1.min.js"></script><script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script><script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script><script src="/static/js/global.js?27"></script><script type="application/ld+json">{"@context": "http://schema.org", "@type": "ItemList", "itemListElement": [{"@type": "SiteNavigationElement", "position": 1, "name": "EVILEG", "url": "/en/"}, {"@type": "SiteNavigationElement", "position": 2, "name": "Articles", "url": "/en/knowledge/"}, {"@type": "SiteNavigationElement", "position": 3, "name": "Forum", "url": "/en/forum/"}, {"@type": "SiteNavigationElement", "position": 4, "name": "Tests", "url": "/en/tests/"}, {"@type": "SiteNavigationElement", "position": 5, "name": "Share code", "url": "/en/sharecode/"}, {"@type": "SiteNavigationElement", "position": 6, "name": "Share code", "url": "/en/sharecode/create/"}, {"@type": "SiteNavigationElement", "position": 7, "name": "Write article", "url": "/en/knowledge/article/add/"}, {"@type": "SiteNavigationElement", "position": 8, "name": "Ask a question", "url": "/en/forum/create_topic/"}]}</script></head><body class="bg-light"><nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-dark"><div class="container-xxl"><button class="navbar-toggler collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#mainNavbar" aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><a class="navbar-brand ms-3 ms-lg-0" href="/en/">EVILEG</a><button class="btn btn-outline-secondary ms-auto d-block d-lg-none" type="button" data-bs-toggle="modal" data-bs-target="#menuModal" aria-controls="menuModal" title="Menu"><span class="bi bi-grid-3x3-gap-fill"></span></button><a class="btn btn-outline-secondary ms-2 d-block d-lg-none" href="/en/accounts/login/" title="Login"> Login </a><div class="navbar-collapse collapse" id="mainNavbar"><form role="search" action="/en/search/" method="get" class="mt-3 mt-lg-0"><input id="search" name="search" type="search" class="form-control" placeholder="Search..." title="Search"></form><ul class="navbar-nav ms-2 mb-2 mb-lg-0"><li class="nav-item"><a class="nav-link" href="/en/knowledge/">Articles</a></li><li class="nav-item"><a class="nav-link" href="/en/forum/">Forum</a></li><li class="nav-item"><a class="nav-link" href="/en/tests/">Tests</a></li><li class="nav-item"><a class="nav-link" href="/en/sharecode/">Share code</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">EN</a><ul class="dropdown-menu"><a class="dropdown-item" href="/lang/ru/">Русский</a><a class="dropdown-item" href="/lang/uk/">Українська</a><a class="dropdown-item" href="/lang/en/">English</a><a class="dropdown-item" href="/lang/kk/">Қазақ</a><a class="dropdown-item" href="/lang/de/">Deutsch</a></ul></li></ul></div><button class="btn btn-outline-secondary ms-2 d-none d-lg-block" type="button" data-bs-toggle="modal" data-bs-target="#menuModal" aria-controls="menuModal" title="Menu"><span class="bi bi-grid-3x3-gap-fill"></span></button><a class="btn btn-outline-secondary ms-2 d-none d-lg-block" href="/en/accounts/login/" title="Login"> Login </a></div></nav><main class="container-xxl"><div class="row"><div class="col-12 col-lg overflow-hidden"><ul class="breadcrumb bg-light"><li class="breadcrumb-item"><a href="/en/"><i class="bi bi-house"><span class="d-none">EVILEG</span></i></a></li><li class="breadcrumb-item"><a href="/en/forum/">Forum</a></li><li class="breadcrumb-item"><a href="/en/forum/sections/">Sections</a></li><li class="breadcrumb-item"><a href="/en/forum/qt/">Qt</a></li><li class="breadcrumb-item active">OAuth2.0 через VK, получение email</li></ul><div itemprop="mainEntity" itemscope itemtype="http://schema.org/Question"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8160668332851230" crossorigin="anonymous"></script><!-- EVILEG ADS TOP --><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8160668332851230" data-ad-slot="6001381692" data-ad-format="auto" data-full-width-responsive="true"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><div id="topic-feed"><div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><link itemprop="image" href="/static/images/favicons/apple-touch-icon-152x152.png"><link itemprop="url" href="/static/images/favicons/apple-touch-icon-152x152.png"><meta itemprop="width" content="152"><meta itemprop="height" content="152"></div><meta itemprop="name" content="EVILEG"><meta itemprop="address" content="EVILEG"><meta itemprop="telephone" content="-"><link itemprop="url" href="https://evileg.com"></div><link itemprop="mainEntityOfPage" itemscope href="/en/forum/topic/1850/" /><meta itemprop="commentCount" content="5"><div itemscope itemprop="author" itemtype="https://schema.org/Person"><meta itemprop="name" content="Marsel"><link itemprop="url" content="/en/users/15590/"></div><meta itemprop="url" content="/en/forum/topic/1850/"><meta itemprop="accessMode" content="textual"><meta itemprop="dateCreated" content="Aug. 16, 2023, 5:24 p.m."><meta itemprop="dateModified" content="Dec. 30, 2024, 3:13 p.m."><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/BookmarkAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/LikeAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/DislikeAction"><meta itemprop="userInteractionCount" content="0"></div><meta itemprop="keywords" content="QOAuth2AuthorizationCodeFlow,OAuth2,VK"><div class="card mb-3"><div class="card-header d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/15590/>M</a><div class="ms-3"><div><a href="/en/users/15590/" class="text-decoration-none">Marsel</a></div><small class="text-secondary">Aug. 16, 2023, 5:24 p.m.</small></div></div><div class="card-body"><h1 itemprop="name" >OAuth2.0 через VK, получение email</h1><p><a href="/en/search/?search=%23QOAuth2AuthorizationCodeFlow">QOAuth2AuthorizationCodeFlow</a>, <a href="/en/search/?search=%23OAuth2">OAuth2</a>, <a href="/en/search/?search=%23VK">VK</a></p><div itemprop="text"><p> Разбираюсь довольно большое количество времени с OAuth через вк, используя QOAuth2AuthorizationCodeFlow и застрял на вопросе получения email пользователя, разобрался с тем как получать всю остальную информацию о пользователе, но как получить почту не могу понять, в документации просто нет информации об этом, неужели это не предусмотренно VK API? <br/> Вот мой тестовый код, тут я получаю имя и фамилию пользоватея и его screen_name, читал на каком-то форуме, что email возвращается VK вместе с токеном, поэтому попробовал с помощью QObject::connect(this-&gt;replyHandler(), &amp;QAbstractOAuthReplyHandler::replyDataReceived, this, &amp;VkOAuth2::onReplyDataReceived); получить QByteArray с ответом от Vk, но email там нет, только токен и id пользователя, подскажите, кто работал с VK API, как получить почту пользователя? </p><pre><pre class="lang-cpp prettyprint linenums">VkOAuth2::VkOAuth2(QObject *parent) : QOAuth2AuthorizationCodeFlow{parent} { auto replyHandler = new QOAuthHttpServerReplyHandler(REDIRECT_URI.port(), qApp); setReplyHandler(replyHandler); setAccessTokenUrl(TOKEN_URL); setAuthorizationUrl(AUTH_URL); setClientIdentifier(CLIENT_ID); setClientIdentifierSharedKey(CLIENT_SECRET); setScope(SCOPE_MASK); QObject::connect(this, &amp;QOAuth2AuthorizationCodeFlow::authorizeWithBrowser, &amp;QDesktopServices::openUrl); //Сигнал granted излучается при успешной авторизации QObject::connect(this-&gt;replyHandler(), &amp;QAbstractOAuthReplyHandler::replyDataReceived, this, &amp;VkOAuth2::onReplyDataReceived); //this-&gt;replyHandler()-&gt;replyDataReceived(); QObject::connect(this, &amp;QOAuth2AuthorizationCodeFlow::replyDataReceived, this, &amp;VkOAuth2::onReplyDataReceived); QObject::connect(this, &amp;QOAuth2AuthorizationCodeFlow::granted, [this]() { const QUrl getEmail{ "https://api.vk.com/method/account.getProfileInfo" }; const QString token = this-&gt;token(); //qDebug() &lt;&lt; token; //Vk требует указывать версию API в параметрах запроса. Укажем 5.131 auto network_reply = get(getEmail, { { "fields", "screen_name" }, { "v", 5.131 } }); QObject::connect(network_reply, &amp;QNetworkReply::finished, [network_reply] { //Ответ будет удалён позже, когда отработают все связанные //с ним сигнально-слотовые соединения, //поэтому такое удаление безопасно network_reply-&gt;deleteLater(); QJsonDocument response = QJsonDocument::fromJson(network_reply-&gt;readAll()); //qDebug() &lt;&lt; response; }); }); this-&gt;grant(); } </pre></pre></div><div class="mt-3"><a href="https://timeweb.com/ru/?i=27415&amp;utm_source=evileg&amp;utm_medium=after_article&amp;utm_campaign=base" rel="nofollow" target="_blank"><div class="d-flex"><div class="me-3"><img src="/media/technical_storage/timeweb-120-90.jpg" alt="We recommend hosting TIMEWEB"></div><div><h5 class="mt-0">We recommend hosting TIMEWEB</h5> Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting. </div></div></a></div></div><div class="card-body border-top"><div class="form-check form-switch d-flex justify-content-between align-items-center"><input class="form-check-input me-3" type="checkbox" role="switch" disabled><label class="form-check-label mt-1">Subscribe to the discussion</label><span class="badge text-bg-primary ms-auto">2</span></div><div class="form-check form-switch d-flex justify-content-between align-items-center"><input class="form-check-input me-3" type="checkbox" role="switch" disabled><label class="form-check-label mt-1"><a href="/en/forum/qt/">Section subscription</a></label><span class="badge text-bg-primary ms-auto">252</span></div></div><div class="m-3 p-3 bg-light rounded text-center"><p>Do you like it? Share on social networks!</p><script async src="https://yastatic.net/share2/share.js"></script><div class="ya-share2" data-curtain data-size="l" data-shape="round" data-lang="en" data-services="telegram,vkontakte,twitter,linkedin,reddit,odnoklassniki,whatsapp,skype,tumblr,lj,pocket,surfingbird"></div></div><div class="card-footer"><div class="btn btn-sm" title="Views"><i class="bi bi-eye me-1"></i>3.2K</div><a class="btn btn-sm btn-light" title="Comments" href="/en/forum/topic/1850/#comments"><i class="bi bi-chat-left me-1"></i>5</a><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can add to favorites"><i class="bi bi-bookmark me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-up-fill me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-down-fill me-1"></i>0</div></div></div><span class="d-none" itemprop="answerCount">5</span><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8160668332851230" crossorigin="anonymous"></script><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-8160668332851230" data-ad-slot="6813806462"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div><a class="anchor" id="comments"></a><div id="comments-feed"><div id="9707" class="card mb-3" itemprop="suggestedAnswer " itemscope itemtype="http://schema.org/Answer"><a class="anchor" name="post-9707"></a><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/BookmarkAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/LikeAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/DislikeAction"><meta itemprop="userInteractionCount" content="0"></div><div class="card-header d-flex py-2"><a href=/en/users/2/><img loading="lazy" alt="Evgenii Legotckoi" class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" src="/media/cache/7a/08/7a0837c6eb199ca9af1a03ea5ccbfcbf.webp"></a><div class="ms-3"><ul class="list-inline mb-0"><li class="list-inline-item"><a rel="author" itemprop="author" itemscope itemtype="http://schema.org/Person" href="/en/users/2/"><span itemprop="name">Evgenii Legotckoi</span><link itemprop="url" href="/en/users/2/"></a></li><li class="list-inline-item mx-2"><a href="/en/forum/topic/1850/#post-9707" title="Link to answer" itemprop="url">#</a></li></ul><ul data-post-header="9707" class="list-inline mb-0"><li class="list-inline-item me-2" itemprop="dateCreated"><small class="text-secondary">Aug. 16, 2023, 6:39 p.m.</small></li></ul></div></div><div id='post_content_9707' itemprop="text" class="card-body"><div class="mb-3"><p> Что у вас написано в SCOPE_MASK ? там есть упоминание о email ? <br/> email - это отдельный scope, без этого разрешения вы не получите email </p></div><ul class="list-inline mb-0"></ul></div><div class="card-footer"><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can add to favorites"><i class="bi bi-bookmark me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-up-fill me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-down-fill me-1"></i>0</div></div></div><div id="9708" class="card mb-3" itemprop="suggestedAnswer " itemscope itemtype="http://schema.org/Answer"><a class="anchor" name="post-9708"></a><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/BookmarkAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/LikeAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/DislikeAction"><meta itemprop="userInteractionCount" content="0"></div><div class="card-header d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/15590/>M</a><div class="ms-3"><ul class="list-inline mb-0"><li class="list-inline-item"><a rel="author" itemprop="author" itemscope itemtype="http://schema.org/Person" href="/en/users/15590/"><span itemprop="name">Marsel</span><link itemprop="url" href="/en/users/15590/"></a> &rarr; <a class="text-muted" href="/en/forum/topic/1850/#post-9707">Evgenii Legotckoi</a></li><li class="list-inline-item mx-2"><a href="/en/forum/topic/1850/#post-9708" title="Link to answer" itemprop="url">#</a></li></ul><ul data-post-header="9708" class="list-inline mb-0"><li class="list-inline-item me-2" itemprop="dateCreated"><small class="text-secondary">Aug. 16, 2023, 7:34 p.m.</small></li></ul></div></div><div id='post_content_9708' itemprop="text" class="card-body"><div class="mb-3"><p> да, конечно SCOPE_MASK = "email" </p></div><ul class="list-inline mb-0"></ul></div><div class="card-footer"><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can add to favorites"><i class="bi bi-bookmark me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-up-fill me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-down-fill me-1"></i>0</div></div></div><div id="9709" class="card mb-3" itemprop="suggestedAnswer " itemscope itemtype="http://schema.org/Answer"><a class="anchor" name="post-9709"></a><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/BookmarkAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/LikeAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/DislikeAction"><meta itemprop="userInteractionCount" content="0"></div><div class="card-header d-flex py-2"><a href=/en/users/2/><img loading="lazy" alt="Evgenii Legotckoi" class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" src="/media/cache/7a/08/7a0837c6eb199ca9af1a03ea5ccbfcbf.webp"></a><div class="ms-3"><ul class="list-inline mb-0"><li class="list-inline-item"><a rel="author" itemprop="author" itemscope itemtype="http://schema.org/Person" href="/en/users/2/"><span itemprop="name">Evgenii Legotckoi</span><link itemprop="url" href="/en/users/2/"></a> &rarr; <a class="text-muted" href="/en/forum/topic/1850/#post-9708">Marsel</a></li><li class="list-inline-item mx-2"><a href="/en/forum/topic/1850/#post-9709" title="Link to answer" itemprop="url">#</a></li></ul><ul data-post-header="9709" class="list-inline mb-0"><li class="list-inline-item me-2" itemprop="dateCreated"><small class="text-secondary">Aug. 16, 2023, 10:47 p.m.</small></li><li id='post_lastmod_9709' class="list-inline-item me-2" title="Aug. 16, 2023, 10:48 p.m."><small class="text-secondary">(edited)</small></li></ul></div></div><div id='post_content_9709' itemprop="text" class="card-body"><div class="mb-3"><p> Хорошо, значит остаётся лишь одно. Вы не там ищете email. </p><p> В официальной документации на VK API написано следующее: </p><blockquote><p> Если у пользователя указан email, а приложением были запрошены соответствующие права, сервер также вернет email пользователя. </p></blockquote><p> Ознакомиться с документацией можно здесь <a href="https://dev.vk.com/ru/api/access-token/authcode-flow-user" rel="nofollow"> VK API authcode </a></p><p> Поэтому пытаться найти email в запросе <strong> getProfileInfo </strong> может быть изначально бесполезно. </p><p> Вам нужно проверить, что возвращается в момент авторизации. </p><p> Если не запрашивать вообще никаких разрешений, то API вернёт это: </p><pre><pre class="lang-js prettyprint linenums">{ "access_token": "533bacf01e11f55b536a565b57531ac114461ae8736d6506a3", "expires_in": 43200, "user_id": 66748 } </pre></pre><p> Если же запросить и email, то должно быть примерно так </p><pre><pre class="lang-js prettyprint linenums">{ "access_token": "533bacf01e11f55b536a565b57531ac114461ae8736d6506a3", "expires_in": 43200, "user_id": 66748, "email": "example@example.com" } </pre></pre><p> В общем, если верить документации на QOAuth2AuthorizationCodeFlow После авторизации кроме токена через метод </p><pre><pre class="lang-cpp prettyprint linenums">const QString token = this-&gt;token(); </pre></pre><p> Вам возможно стоит проверить ещё и экстра токены с помощью метода <a href="https://doc.qt.io/qt-6/qabstractoauth.html#extraTokens" rel="nofollow"> extraTokens </a></p><pre><pre class="lang-cpp prettyprint linenums">const QVariantMap tokens = this-&gt;extraTokens(); </pre></pre><p> Полагаю, что там может быть email и всякая дополнительная шелуха. </p></div><ul class="list-inline mb-0"></ul></div><div class="card-footer"><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can add to favorites"><i class="bi bi-bookmark me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-up-fill me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-down-fill me-1"></i>0</div></div></div><div id="9710" class="card mb-3" itemprop="suggestedAnswer acceptedAnswer" itemscope itemtype="http://schema.org/Answer"><a class="anchor" name="post-9710"></a><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/BookmarkAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/LikeAction"><meta itemprop="userInteractionCount" content="1"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/DislikeAction"><meta itemprop="userInteractionCount" content="0"></div><div class="card-header d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/15590/>M</a><div class="ms-3"><ul class="list-inline mb-0"><li class="list-inline-item"><a rel="author" itemprop="author" itemscope itemtype="http://schema.org/Person" href="/en/users/15590/"><span itemprop="name">Marsel</span><link itemprop="url" href="/en/users/15590/"></a> &rarr; <a class="text-muted" href="/en/forum/topic/1850/#post-9709">Evgenii Legotckoi</a></li><li class="list-inline-item mx-2"><a href="/en/forum/topic/1850/#post-9710" title="Link to answer" itemprop="url">#</a></li></ul><ul data-post-header="9710" class="list-inline mb-0"><li class="list-inline-item me-2" itemprop="dateCreated"><small class="text-secondary">Aug. 17, 2023, 12:18 a.m.</small></li><li id='post_lastmod_9710' class="list-inline-item me-2" title="Aug. 17, 2023, 12:26 a.m."><small class="text-secondary">(edited)</small></li><li class="list-inline-item me-2"><small class="text-success">The answer was marked as a solution.</small></li></ul></div></div><div id='post_content_9710' itemprop="text" class="card-body"><div class="mb-3"><p> Да, действительно, оказалось что почта к моему аккаунту была привязана, но ждала подтверждение, а я столько времени потратил впустую, когда проблема была в аккаунте, используя другой аккаунт, я получил email с помощью const QVariantMap tokens = this-&gt;extraTokens(); </p></div><ul class="list-inline mb-0"></ul></div><div class="card-footer"><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can add to favorites"><i class="bi bi-bookmark me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-up-fill me-1"></i>1</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-down-fill me-1"></i>0</div></div></div><div id="9711" class="card mb-3" itemprop="suggestedAnswer " itemscope itemtype="http://schema.org/Answer"><a class="anchor" name="post-9711"></a><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/BookmarkAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/LikeAction"><meta itemprop="userInteractionCount" content="0"></div><div itemprop="interactionStatistic" itemscope itemtype="https://schema.org/InteractionCounter"><meta itemprop="interactionType" content="https://schema.org/DislikeAction"><meta itemprop="userInteractionCount" content="0"></div><div class="card-header d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/15590/>M</a><div class="ms-3"><ul class="list-inline mb-0"><li class="list-inline-item"><a rel="author" itemprop="author" itemscope itemtype="http://schema.org/Person" href="/en/users/15590/"><span itemprop="name">Marsel</span><link itemprop="url" href="/en/users/15590/"></a> &rarr; <a class="text-muted" href="/en/forum/topic/1850/#post-9709">Evgenii Legotckoi</a></li><li class="list-inline-item mx-2"><a href="/en/forum/topic/1850/#post-9711" title="Link to answer" itemprop="url">#</a></li></ul><ul data-post-header="9711" class="list-inline mb-0"><li class="list-inline-item me-2" itemprop="dateCreated"><small class="text-secondary">Aug. 17, 2023, 12:26 a.m.</small></li></ul></div></div><div id='post_content_9711' itemprop="text" class="card-body"><div class="mb-3"><p> Спасибо большое за помощь и простите за то что отнял время своей невнимательностью. </p></div><ul class="list-inline mb-0"></ul></div><div class="card-footer"><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can add to favorites"><i class="bi bi-bookmark me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-up-fill me-1"></i>0</div><div class="btn btn-sm btn-light" onclick="Global.nonlogin()" title="Only registered users can rate"><i class="bi bi-hand-thumbs-down-fill me-1"></i>0</div></div></div></div><div class="card card-warning m-3 "><div class="card-header bg-warning"><h3 class="card-title mb-0">Comments</h3></div><div class="card-body"> Only authorized users can post comments.<br/>Please, <a href="/en/accounts/login/">Log in</a> or <a href="/en/accounts/register/">Sign up</a></div></div></div></div><div class="col-12 col-lg-auto"><div class="sidebar sidebar-lg sticky-lg-top mb-3"><div class="list-group mb-3"><div class="list-group-item list-group-item-primary"><strong>Actions</strong></div><a None href="/en/knowledge/article/add/" class="list-group-item list-group-item-action"><span>Write article</span></a><a None href="/en/forum/create_topic/" class="list-group-item list-group-item-action"><span>Ask a question</span></a><a None href="/en/forum/create_topic/" class="list-group-item list-group-item-action"><span>Take the test</span></a><a None href="/en/sharecode/create/" class="list-group-item list-group-item-action"><span>Share code</span></a></div><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8160668332851230" crossorigin="anonymous"></script><!-- EVILEG SIDEBAR TOP --><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8160668332851230" data-ad-slot="8743063287" data-ad-format="auto" data-full-width-responsive="true"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div></div></div><div class="row"><div class="col-12 col-lg overflow-hidden"><ul class="list-group mb-3"><li class="list-group-item list-group-item-primary"><strong>Last passed tests</strong></li><li class="list-group-item"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/18456/>АА</a><div class="ms-3"><div><a href="/en/users/18456/" class="text-decoration-none">Антон Арнст</a></div><small class="text-secondary">March 14, 2025, 1:48 p.m.</small></div></div><div class="mb-3"><div><a href="/en/tests/t/9/">Qt - Test 001. Signals and slots</a></div><div><strong>Result:</strong> 68 points</div><div><span class="text-danger">Test is not passed</span></div></div></li><li class="list-group-item"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/18456/>АА</a><div class="ms-3"><div><a href="/en/users/18456/" class="text-decoration-none">Антон Арнст</a></div><small class="text-secondary">March 14, 2025, 1:43 p.m.</small></div></div><div class="mb-3"><div><a href="/en/tests/t/1/">C++ - Test 001. The first program and data types</a></div><div><strong>Result:</strong> 60 points</div><div><span class="text-danger">Test is not passed</span></div></div></li><li class="list-group-item"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/18450/>K</a><div class="ms-3"><div><a href="/en/users/18450/" class="text-decoration-none">Korabel</a></div><small class="text-secondary">March 12, 2025, 7:33 p.m.</small></div></div><div class="mb-3"><div><a href="/en/tests/t/9/">Qt - Test 001. Signals and slots</a></div><div><strong>Result:</strong> 63 points</div><div><span class="text-danger">Test is not passed</span></div></div></li></ul><ul class="list-group mb-3"><li class="list-group-item list-group-item-primary"><strong>Last comments</strong></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a href=/en/users/2/><img loading="lazy" alt="Evgenii Legotckoi" class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" src="/media/cache/7a/08/7a0837c6eb199ca9af1a03ea5ccbfcbf.webp"></a><div class="ms-3"><div><a href="/en/users/2/" class="text-decoration-none">Evgenii Legotckoi</a></div><small class="text-secondary">March 9, 2025, 9:02 p.m.</small></div></div><div><a href="/en/post/193/#comment-2844">QML - Lesson 020. Introduction to Android Manifest in Qt Creator</a></div><div class="text-break"> К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…</div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/15549/>VP</a><div class="ms-3"><div><a href="/en/users/15549/" class="text-decoration-none">Viktor Pathfinder</a></div><small class="text-secondary">March 9, 2025, 4:14 p.m.</small></div></div><div><a href="/en/post/193/#comment-2843">QML - Lesson 020. Introduction to Android Manifest in Qt Creator</a></div><div class="text-break"> Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…</div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/1217/>ИМ</a><div class="ms-3"><div><a href="/en/users/1217/" class="text-decoration-none">Игорь Максимов</a></div><small class="text-secondary">Nov. 22, 2024, 9:51 p.m.</small></div></div><div><a href="/en/post/203/#comment-2842">Django - Tutorial 017. Customize the login page to Django</a></div><div class="text-break"> Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…</div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a href=/en/users/2/><img loading="lazy" alt="Evgenii Legotckoi" class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" src="/media/cache/7a/08/7a0837c6eb199ca9af1a03ea5ccbfcbf.webp"></a><div class="ms-3"><div><a href="/en/users/2/" class="text-decoration-none">Evgenii Legotckoi</a></div><small class="text-secondary">Oct. 31, 2024, 11:37 p.m.</small></div></div><div><a href="/en/post/729/#comment-2751">Django - Lesson 064. How to write a Python Markdown extension</a></div><div class="text-break"> Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup </div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/17869/>A</a><div class="ms-3"><div><a href="/en/users/17869/" class="text-decoration-none">ALO1ZE</a></div><small class="text-secondary">Oct. 19, 2024, 5:19 p.m.</small></div></div><div><a href="/en/post/485/#comment-2750">Fb3 file reader on Qt Creator</a></div><div class="text-break"> Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html </div></div></li></ul><ul class="list-group mb-3"><li class="list-group-item list-group-item-primary"><strong>Now discuss on the forum</strong></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/18263/>f</a><div class="ms-3"><div><a href="/en/users/18263/" class="text-decoration-none">firstlunoxod</a></div><small class="text-secondary">Feb. 15, 2025, 1:46 p.m.</small></div></div><div><a href="/en/forum/topic/218/#post-9885">Рисование на QGraphicsScene при зажатой кнопке мыши</a></div><div class="text-break"> Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене? </div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a href=/en/users/2417/><img loading="lazy" alt="Дмитрий" class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" src="/media/cache/7f/2a/7f2a7c6416eb74fb21e8506c0ed78532.webp"></a><div class="ms-3"><div><a href="/en/users/2417/" class="text-decoration-none">Дмитрий</a></div><small class="text-secondary">Feb. 3, 2025, 4:24 p.m.</small></div></div><div><a href="/en/forum/topic/1920/">Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета?</a></div><div class="text-break"> Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…</div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/18202/>NW</a><div class="ms-3"><div><a href="/en/users/18202/" class="text-decoration-none">Nayo Wai</a></div><small class="text-secondary">Jan. 30, 2025, 7:22 p.m.</small></div></div><div><a href="/en/forum/topic/1919/">не запускается компьютер!!!</a></div><div class="text-break"> Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…</div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/12748/>n</a><div class="ms-3"><div><a href="/en/users/12748/" class="text-decoration-none">nkly</a></div><small class="text-secondary">Jan. 3, 2025, 12:52 p.m.</small></div></div><div><a href="/en/forum/topic/1909/#post-9884">Нужно запретить перемещение только некоторых итемов, остальные перемещать можно.</a></div><div class="text-break"> Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event-&gt;position().toPoint()) представления QTreeViev вызываемой в переопр…</div></div></li><li class="list-group-item"><div class="py-2"><div class="d-flex py-2"><a class="bg-secondary bg-opacity-10 rounded avatar-initials avatar-48" href=/en/users/15590/>M</a><div class="ms-3"><div><a href="/en/users/15590/" class="text-decoration-none">Marsel</a></div><small class="text-secondary">Aug. 17, 2023, 12:26 a.m.</small></div></div><div><a href="/en/forum/topic/1850/#post-9711">OAuth2.0 через VK, получение email</a></div><div class="text-break"> Спасибо большое за помощь и простите за то что отнял время своей невнимательностью. </div></div></li></ul></div><div class="col-12 col-lg-auto"><div class="sidebar sidebar-lg sticky-lg-top mb-3"><div class="sidebar sidebar-lg sticky-top"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8160668332851230" crossorigin="anonymous"></script><!-- EVILEG SIDEBAR BOTTOM --><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8160668332851230" data-ad-slot="3079673067" data-ad-format="auto" data-full-width-responsive="true"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div></div></div></div></main><div class="container-xxl"><footer class="py-5"><div class="row"><div class="col-6 col-md-3 mb-3"><h5>About us</h5><ul class="nav flex-column"><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="/en/pages/">About us</a></li><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="/en/pages/rules/privacy-policy/">Privacy Policy</a></li><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="/en/pages/contacts/">Contacts</a></li><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="/en/pages/donate/">Donate</a></li><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="/en/pages/for-advertisers/">For advertisers</a></li></ul></div><div class="col-6 col-md-3 mb-3"><h5>Follow us in social networks</h5><ul class="nav flex-column"><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="https://vk.com/evileg" target="_blank" rel="noindex nofollow">VKontakte</a></li><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="https://t.me/evileg_ru" target="_blank" rel="noindex nofollow">Telegram</a></li><li class="nav-item mb-2"><a class="nav-link p-0 text-body-secondary" href="https://www.reddit.com/r/Evileg/" target="_blank" rel="noindex nofollow">Reddit</a></li></ul></div><div class="col-6 mb-3"><ul class="nav flex-column"><li class="nav-item mb-2">We recommend VSD hosting <a class="nav-link p-0" href="http://timeweb.com/ru/?i=27415&utm_source=evileg&utm_medium=footer&utm_campaign=timeweb" target="_blank" rel="noindex nofollow">Timeweb</a></li></ul></div></div><div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top"><p>© 2015-2025, Evgenii Legotckoi</p><ul class="list-unstyled d-flex"><li class="ms-3"><a class="link-body-emphasis" href="https://t.me/evileg_ru" target="_blank" rel="noindex nofollow"><i class="bi bi-telegram" style="font-size: 2rem;"></i></a></li><li class="ms-3"><a class="link-body-emphasis" href="https://www.reddit.com/r/Evileg/" target="_blank" rel="noindex nofollow"><i class="bi bi-reddit" style="font-size: 2rem;"></i></a></li></ul></div></footer></div><div id="menuModal" class="modal" tabindex="-1"><div class="modal-dialog modal-dialog-scrollable"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">Actions</h5><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button></div><div class="modal-body m-0 p-0"><div class="list-group list-group-flush"><a None href="/en/knowledge/article/add/" class="list-group-item list-group-item-action"><span>Write article</span></a><a None href="/en/forum/create_topic/" class="list-group-item list-group-item-action"><span>Ask a question</span></a><a None href="/en/forum/create_topic/" class="list-group-item list-group-item-action"><span>Take the test</span></a><a None href="/en/sharecode/create/" class="list-group-item list-group-item-action"><span>Share code</span></a></div></div></div></div></div><script async src="/static/js/run_prettify.js"></script><!-- Yandex.Metrika counter --><script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(39565770, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); </script><noscript><div><img src="https://mc.yandex.ru/watch/39565770" style="position:absolute; left:-9999px;" alt="" /></div></noscript><!-- /Yandex.Metrika counter --><script defer src="/static/js/forum.min.js?16"></script><!-- Yandex.RTB R-A-218837-50 --><script> window.addEventListener("load", () => { const render = (imageId) => { window.yaContextCb.push(() => { Ya.Context.AdvManager.render({ "renderTo": imageId, "blockId": "R-A-218837-50", "type": "inImage" }) }) } const renderInImage = (images) => { if (!images.length) { return } const image = images.shift() image.id = `yandex_rtb_R-A-218837-50-${Math.random().toString(16).slice(2)}` if (image.tagName === "IMG" && !image.complete) { image.addEventListener("load", () => { render(image.id) }, { once: true }) } else { render(image.id) } renderInImage(images) } renderInImage(Array.from(document.querySelectorAll("img"))) }, { once: true }) </script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10