在日历视图中的微软图形API中获取日历颜色

问题描述 投票:0回答:2

我正在使用microsoft graph api中的calendarview,使用以下网址:https://graph.microsoft.com/v1.0/me/calendars/'+calendarId+'/calendarView?$select=subject,bodyPreview,开始、结束、位置、isAllDay、lastModifiedDateTime、iCalUId、类别

一切正常,我得到了我需要的数据,但我同时想获取日历的颜色和十六进制颜色,但我不知道该怎么做,所以我希望其他人可以帮忙,

我尝试将 ,calendar 添加到 $select 部分,但没有给我任何有关这些事件所属日历的信息。

我在这里看到:https://learn.microsoft.com/en-us/graph/api/resources/event?view=graph-rest-1.0如果我理解正确,我应该能够做到这一点,所以我希望有人能帮忙。

colors calendar microsoft-graph-api
2个回答
0
投票

CalendarView 将仅返回事件对象(或 Exchange 中的基础日历项目)。日历颜色属性仅存在于日历中,而不是事件本身的属性。根据您的要求

https://graph.microsoft.com/v1.0/me/calendars/'+calendarId+'/calendarView?$select=subject,bodyPreview,start,end,location,isAllDay,lastModifiedDateTime,iCalUId,categories

这只会返回日历中的事件以及您传入的calendarId,因此如果您想要日历颜色,您只需要在日历端点上发出单独的请求,例如获取

https://graph.microsoft.com/v1.0/me/calendars/'+calendarId+


0
投票

Outlook 根据事件的类别选择颜色。您可以使用它来显示几乎像 Outlook 一样的颜色。

在事件对象中,您可以找到类别属性。 (来源:事件资源类型属性

它是一个字符串数组。通常为空或只有一个元素。然后,您可以请求用户的所有类别(来源:List masterCategories)。

遗憾的是,OutlookCategory.color 只是颜色的标签,而不是可以直接使用的颜色代码(来源:outlookCategory 资源类型属性)您必须将每个“预设”映射到所需的颜色。

注意 颜色的可能值是预设常量,例如 None、preset0 和preset1。每个预设常量进一步映射为一种颜色;实际颜色取决于显示类别的 Outlook 客户端。下表显示映射到 Outlook(桌面客户端)每个预设常量的颜色。

如果您希望每个预设都遵循 Outlook 颜色,则可以浏览 Outlook 网页并选择使用的颜色。

我收集了这些颜色,但您可以选择不同的调色板:

function getColorFromPreset(preset) {
  switch (preset) {
    case 'preset0': return "rgba(197, 15, 31, 0.9)"
    case 'preset1': return "rgba(167, 65, 9, 0.9)"
    case 'preset2': return "rgba(255, 140, 0, 0.9)"
    case 'preset3': return "rgba(234, 163, 0, 0.9)"
    case 'preset4': return "rgba(19, 161, 14, 0.9)"
    case 'preset5': return "rgba(0, 183, 195, 0.9)"
    case 'preset6': return "rgba(115, 170, 36, 0.9)"
    case 'preset7': return "rgba(0, 188, 242, 0.9)"
    case 'preset8': return "rgba(113, 96, 232, 0.9)"
    case 'preset9': return "rgba(228, 59, 166, 0.9)"
    case 'preset10': return "rgba(133, 149, 153, 0.9)"
    case 'preset11': return "rgba(0, 91, 112, 0.9)"
    case 'preset12': return "rgba(122, 117, 116, 0.9)"
    case 'preset13': return "rgba(93, 90, 88, 0.9)"
    case 'preset14': return "rgba(57, 57, 57, 0.9)"
    case 'preset15': return "rgba(117, 11, 28, 0.9)"
    case 'preset16': return "rgba(218, 59, 1, 0.9)"
    case 'preset17': return "rgba(77, 41, 28, 0.9)"
    case 'preset18': return "rgba(193, 156, 0, 0.9)"
    case 'preset19': return "rgba(11, 106, 11, 0.9)"
    case 'preset20': return "rgba(0, 102, 102, 0.9)"
    case 'preset21': return "rgba(73, 130, 5, 0.9)"
    case 'preset22': return "rgba(0, 57, 102, 0.9)"
    case 'preset23': return "rgba(64, 27, 108, 0.9)"
    case 'preset24': return "rgba(119, 0, 77, 0.9)"

    case 'none':
    default:
      return "#3788d8";
  }
}

console.log(getColorFromPreset('preset8'))

© www.soinside.com 2019 - 2024. All rights reserved.