# #kotlin #google-cloud-platform #google-api #google-calendar-api #ktor
Вопрос:
Я тестирую Google Calendar API v3, и единственными отсутствующими полями являются location
и attendees
получение событий календаря. Я использую интерфейс REST (google oauth2, и пользователь, с которым я вошел в систему, является владельцем календаря), и я могу выполнять все необходимые операции CRUD, но по какой-то причине location
attendees
они игнорируются. Если я использую ту же полезную нагрузку (скопированную с вывода консоли) с помощью Google API explorer или Postman, это работает… что я упускаю?
Пример загрузки:
POST https://www.googleapis.com/calendar/v3/calendars/[YOUR_CALENDAR_ID]/events?key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json
{
"end": {
"timeZone": "Europe/Lisbon",
"dateTime": "2021-05-13T10:00:00 01:00"
},
"start": {
"timeZone": "Europe/Lisbon",
"dateTime": "2021-05-13T08:00:00 01:00"
},
"attendees": [
{
"email": "batman@mail.com"
}
],
"location": "Batcave"
}
Я использую Ktor, и это код:
client.post<Event>("https://www.googleapis.com/calendar/v3/calendars/${calendarId}/events") {
body = event
parameter(API_KEY_PARAMETER, apiKey)
contentType(ContentType.Application.Json)
header(HttpHeaders.Authorization, token)
}
где Событие:
@Serializable
data class Event(
val id: String = "",
val status: String = "",
val created: String = "",
val updated: String = "",
val creator: Attendee,
val start: DateLabel,
val end: DateLabel,
val summary: String = "",
val description: String = "",
val location: String = "",
val attendees: List<Attendee> = emptyList(),
val maxAttendees: Int = 5
)
@Serializable
data class DateLabel(
val date: String = "",
val dateTime: String = "",
val timeZone: String = ""
)
@Serializable
data class Attendee(val email: String)
Комментарии:
1. Можете ли вы предоставить дополнительную информацию о
REST interface
том, с помощью чего вы выполняете неудачный запрос? Есть ли в этом какой-то код? Вы выполняете ту же самую просьбу? (излишне говорить, что это также работает для меня черезTry this API
).2. @Iamblichus вопрос обновлен
3. @Iamblichus Я нашел это, ошибка новичка, конечно, неправильная ссылка на объект…