Outlook 如何从Rest Api获取CalendarID作为MAPIFolder.EntryID?
在Com加载项中,我使用:Outlook 如何从Rest Api获取CalendarID作为MAPIFolder.EntryID?,outlook,outlook-addin,outlook-web-addins,outlook-restapi,Outlook,Outlook Addin,Outlook Web Addins,Outlook Restapi,在Com加载项中,我使用: public static string GetCalendarFolderIDByAppointmentItem(AppointmentItem appItem) { string calendarID = string.Empty; try { if (appItem != null) { MAPIFolder mfolder =
public static string GetCalendarFolderIDByAppointmentItem(AppointmentItem appItem)
{
string calendarID = string.Empty;
try
{
if (appItem != null)
{
MAPIFolder mfolder = appItem.Parent as MAPIFolder;
if (mfolder != null)
{
calendarID = mfolder.EntryID;
//ex CalendarID1: 00000000CE3AA07BAA3BEB4D89D813609D6535A701005B31700ECA323145B82C6A7BBBDCAB4300000000010D0000*
}
}
https://outlook.office365.com/api/v2.0/me/calendar/events/?$expand=singleValueExtendedProperties($filter=PropertyId eq 'Binary 0x0FFF')
在Web插件中,我使用:
public static string GetCalendarFolderIDByAppointmentItem(AppointmentItem appItem)
{
string calendarID = string.Empty;
try
{
if (appItem != null)
{
MAPIFolder mfolder = appItem.Parent as MAPIFolder;
if (mfolder != null)
{
calendarID = mfolder.EntryID;
//ex CalendarID1: 00000000CE3AA07BAA3BEB4D89D813609D6535A701005B31700ECA323145B82C6A7BBBDCAB4300000000010D0000*
}
}
https://outlook.office365.com/api/v2.0/me/calendar/events/?$expand=singleValueExtendedProperties($filter=PropertyId eq 'Binary 0x0FFF')
结果:
var Base64StringEntryID = restitem.SingleValueExtendedProperties[0].Value;
然后我将Base64String转换为十六进制,以匹配VSTO的entryId格式
//ex CalendarID2: 00000000CE3AA07BAA3BEB4D89D813609D6535A707005B31700ECA323145B82C6A7BBBDCAB4300000000010600005B31700ECA323145B82C6A7BBBDCAB4300000000304B0000
但结果中有不同的CalendarID。那么,还有其他方法可以从Rest Api获取日历id吗?MAPIFolder已被删除(关于此问题,请尝试使用日历资源类型的id属性。日历资源类型的链接:-