MIcrosoft API получает описание события календаря и показывает его соответствующим образом
В моем проекте React я сделал вызов Axios, чтобы заполнить список событий календаря, получая данные из календаря Microsoft Outlook (используя Microsoft API). Результат следующий
Как вы видите, только описание события вызывает у меня проблему. Действительно, чтобы показать описание события, он показывает мне строку HTML без детализации события.
Я прочитал, что я должен поставить в заголовке моего запроса Content-type:text
, но я пытался, и это не работает. Как я могу решить это? Это мой запрос Axios
getEvents(startDate, endDate, accessToken) {
const startDateString = startDate.toISOString();
const endDateString = endDate.toISOString();
axios.get(
`https://graph.microsoft.com/v1.0/users/${USER_PUBLIC_ID}/calendarview?startdatetime=${startDateString}&enddatetime=${endDateString}&orderby=start/dateTime`,
{
headers: {
Authorization: `Bearer ${accessToken}`,
},
},
).then(response => this.setEvents(response.data.value))
.catch((error) => {
console.error(error.response);
});
}
2 ответа
В этом отношении Prefer: outlook.body-content-type="text"
заголовок должен быть указан.
Чтобы указать желаемый формат для возврата в свойствах Body и UniqueBody в GET-запросе, используйте
Prefer: outlook.body-content-type
заголовок:
- Уточнить
Prefer: outlook.body-content-type="text"
чтобы получить тело сообщения, возвращенного в текстовом формате.- Уточнить
Prefer: outlook.body-content-type="html"
или просто пропустите заголовок, чтобы вернуть тело сообщения в формате HTML.
пример
getEvents(startDate, endDate, accessToken) {
const startDateString = startDate.toISOString();
const endDateString = endDate.toISOString();
return axios.get(
`https://graph.microsoft.com/v1.0/users/${USER_PUBLIC_ID}/calendarview?startdatetime=${startDateString}&enddatetime=${endDateString}&orderby=start/dateTime`,
{
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
'Prefer' : 'outlook.body-content-type="text"'
}
}
);
}
Вам нужно дать axios объект конфигурации. В настоящее время вы используете свойство get, поэтому ваш код в настоящее время не работает:
axios({
url: `https://graph.microsoft.com/v1.0/users/${USER_PUBLIC_ID}/calendarview?startdatetime=${startDateString}&enddatetime=${endDateString}&orderby=start/dateTime`,
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
"Content-type": "text"
},
})
Вы можете прочитать больше здесь: https://github.com/axios/axios