Я пытаюсь вставить событие в календарь Google, используя Qt C ++.
Перед вставкой событий я могу очистить основной календарь с помощью этих строк
const QUrl clearPrimaryUrl("https://www.googleapis.com/calendar/v3/calendars/primary/clear");
void GoogleWrapper::clearPrimaryCalendar()
{
QNetworkReply *reply = google.post(clearPrimaryUrl);
connect(reply, &QNetworkReply::finished, [=]()
{
reply->deleteLater();
if(reply->error() != QNetworkReply::NoError)
{
qCritical() << "Google error:" << reply->errorString();
return;
}
emit primaryCalendarCleared();
});
}
google
является объектом QOAuth2AuthorizationCodeFlow .
Теперь, чтобы вставить события, я использую эти строки:
const QUrl insertEventUrl("https://www.googleapis.com/calendar/v3/calendars/primary/events");
void GoogleWrapper::insertEvent(const QByteArray &eventData)
{
qDebug() << eventData;
QNetworkReply *reply = google.post(insertEventUrl, eventData);
connect(reply, &QNetworkReply::finished, [=]()
{
reply->deleteLater();
if(reply->error() != QNetworkReply::NoError)
{
qCritical() << "Google error:" << reply->errorString();
return;
}
emit eventInserted();
});
}
Но вывод, который я получил от qCritical, всегда был Error transferring https://www.googleapis.com/calendar/v3/calendars/primary/events - server replied: Bad Request
.
Я попытался вывести eventData
в файл и скопировать и вставить его в Google попробует этот API , и приведенные ниже данные json отлично работают
{
"description": "some teacher name",
"end": {
"dateTime": "2018-12-19T11:15:00Z"
},
"location": "Room",
"start": {
"dateTime": "2018-12-19T09:30:00Z"
},
"summary": "Subject Name"
}
Кто-нибудь знает, что я сделал не так?