gmail api身份验证期间收到错误“ 302”

时间:2020-04-22 07:06:22

标签: gmail-api

早上好, 我在我的应用程序中使用gmail api身份验证来发送电子邮件。今天,我开始收到“ 302”错误。上次使用我的应用时,四月初一切都很好。

void DownloaderGmailAPI::getCode(){

QString FileName = "client_secret______.json";
QFile jsonFile(FileName);
if (!jsonFile.open(QIODevice::ReadOnly))
{
    return;
}
QByteArray saveData = jsonFile.readAll();
jsonFile.close();

QJsonDocument jsonDocument(QJsonDocument::fromJson(saveData));
const auto object = jsonDocument.object();
const auto settingsObject = object["web"].toObject();
const QUrl authUri(settingsObject["auth_uri"].toString());
const auto clientId = settingsObject["client_id"].toString();
const QUrl tokenUri(settingsObject["token_uri"].toString());
const auto clientSecret(settingsObject["client_secret"].toString());
const auto redirectUris = settingsObject["redirect_uris"].toArray();
const QUrl redirectUri(redirectUris[0].toString()); // Get the first URI
const auto port = static_cast<quint16>(redirectUri.port()); // Get the port

QUrl url;
url.setScheme("https");
url.setHost("accounts.google.com");
url.setPath("/o/oauth2/auth");

QUrlQuery params;
params.addQueryItem("scope", "https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.send");
params.addQueryItem("redirect_uri", "http://127.0.0.1:8080");
params.addQueryItem("response_type","code");
params.addQueryItem("client_id", clientId);


url.setQuery(params);
if(checkUrl(url)){
    QNetworkRequest request;    // 
    request.setUrl(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
    manager->get(request);      // 
}}

也许我没有看到地址更改或其他方面的一些更新?

1 个答案:

答案 0 :(得分:1)

我很早就收到了带有重定向URL的代码200。 我添加了从标题答复中获取位置的信息,这很有帮助。

QString location = reply->header(QNetworkRequest::LocationHeader).toString();
QDesktopServices::openUrl(QUrl(location));
相关问题