We have had issues with rooms not updating their schedules when meetings are either canceled or have their times changed. Since we are using this information from the API, it has been very disturbing. Has anyone else encountered this, or know of a reason/fix?
Related
Our product (SaaS) has a function that connects to Microsoft365. When a user creates an event with meeting rooms on Outlook, our service detects it and writes some messages in the event using Graph API.
On March 30th, 2022, Microsoft365 suddenly started sending many emails. They describe that the meeting room accepted the request. It's ok if we receive an email once, but we receive them about 5 to 10 times in some minutes.
Without our service, we don't receive many emails, only once.
We didn't update our service on that day, so we have been confused about it.
We got audit logs from our Microsoft365 admin, and it shows that the event was updated many times by the Microsoft365 server itself (not by our service).
We are wondering what is happening. Does someone have any ideas?
Thanks.
There seems to be no way to do this, anyone has an idea? There also seems to be some chrome plugins that offer solutions, although I tried a few and none worked, and some methods I've seen on medium are outdated with slack's updates to the application process.
Note: It's not possible to bulk delete messages. Owners and admins can delete a channel to remove all its messages. Owners on paid subscriptions can also set a retention policy to automatically delete messages after a certain amount of time.
https://slack.com/intl/en-au/help/articles/202395258-Edit-or-delete-messages
I have inherited from a colleague who left a system module that integrates with Exchange Online in Office 365. Essentially what this module does is interact with with the remote Exchange service via EWS Managed API; subscribe for push notifications on changes in a user's calendar.
Change events do get posted to our web service and that is fine. And based on the frequency parameter we defined, the status checks messages also get posted on expected intervals, as per description about the subscription keep-alive behaviour.
The problem is, in observation, the subscription does not perpetuate despite responding with SubscriptionStatusType.OK to keep it ongoing. We never send SubscriptionStatusType.Unsubscribe since there is no error condition found in notification in messages. It seems to only last 9 to 14 hours before the Exchange service stops sending any status checks or change notification messages. When we make subscriptions from two separate web servers (different notification callback URLs), their subscriptions seem to die out around the same time.
Haven't found any clues that would cause the Exchange service to cancel/expire our subscriptions. What other conditions might contribute to this premature unsubscribe?
Exchange will "lose" subscriptions on a fairly regular basis, especially in the O365 environment because mailboxes are continually being shuffled onto different servers in order to load balance the entire ecosystem. Even in an on-prem Exchange you can lose subscription if a CAS restarts. Unfortunately to build a reliable app, you have to check periodically that you heard from Exchange via some kind of notification or heartbeat.
Is there anyway to get the same "MessageId" you can get in Exchange EWS when using ActiveSync?
I thought this was an Exchange way to identify each message uniquely, but I can't seem to find a way to retrieve it using ActiveSync.
EDIT: I've got 2 applications, one that stores info using ActiveSync, and one that stores info using EWS, and I want them to be able to work separately on the same message.... To do this, I was hoping to use the EWS MessageId, which seems to be a GUID type identifier for each individual message. (Note: This doesn't appear to be the same Message-ID as is found in email headers).
Sadly, you're mostly out of luck.
ActiveSync is not an integration protocol, it's a mobile synchronization protocol designed for low-bandwidth communication devices like smart phones. A lot of capabilities in EWS will not exist in EAS.
Long-term message identification and correlation isn't as important for mobile devices. They simply get told what messages are in each folder, and allow the user to manipulate them. At any time the Exchange server may tell its EAS-connected clients to "re-sync" which causes them to forget the messages they have on the device and pull them cleanly from the server. That happens a lot with EAS, sometimes a couple of times an hour, depending on what is happening with that mailbox. For example, deleting a folder via Outlook causes a FolderSync to happen, and that forces connected devices to cleanly re-sync again.
Therefore EAS appears to have left behind the notion of GUIDs or other long term IDs for messages. Instead, the server will assign ephemeral IDs that are valid only until the next big resync is forced (which could happen at any time). You'll probably see Exchange give very simple IDs like 7:45 (which means message ID 45 within folder 7, IIRC). However after a resync that might have the number 7:32 (if the user deletes other messages in that folder) or something like 4:22 (if the message gets moved to another folder entirely).
Other EAS servers like Zimbra, Kerio or Notes Traveler might assign GUIDs, but from memory this is how Exchange behaves. Your only option might be to put a hidden correlation ID of your own into the body or subject of messages you're interested in. That will allow you to track the lifecycle of the items you're interested in, at the expense of some odd stuff being visible to users in their message contents.
#Brian is correct - There are no global unique identifiers for ActiveSync items that can be used to correlate with EWS (With some exceptions, for instance a meeting invite has a UID, as do Events which can be used with some hackery to retrieve an EWS ID for the related EWS calendar event) and there are no fields that aren't visible to the user that can be hijacked for adding your own data with which to correlate. This is most apparent in email, contacts, tasks, notes etc...
However if you are syncing both, it is possible to use the meta data in the objects to match. For instance, for contacts write a hashing algorithm that combines the data from the first name, last name, company name, etc... fields and produces a result. This can be run on the data from both sides and will have relatively little object collision for matching (and those that do collide will have exactly the same visible data to the user anyway so in most cases it won't matter that you didn't get an exact alignment)
I have been testing events API against a relatively new account (created June 13, 2012). Until today, calls to the events API with a stream position of 0 would return the very first events that occurred on the account. This allowed me to track all the files that had been added to my account without traversing the folder hierarchy. Starting this week, I am no longer getting events for uploads during the first few days after I opened my account. My call is as follows:
curl 'https://www.box.com/api/2.0/events?stream_type=changes&limit=100&stream_position=0' -L -H 'Authorization: BoxAuth api_key=xxxxx&auth_token=xxxxx'
Do older events get dropped from the events queue from time to time? If so, is there any way to know how far back the queue goes? (Assuming old events do get dropped, just checking the earliest item in the queue would be unreliable since, if that event is more recent than the last one I processed, it's not possible to tell whether the account has just been inactive or whether interim events have been dropped.)
Any guidance would be very much appreciated. Hopefully I'm just doing something wrong and the older events are still accessible one way or another.
Events aren't maintained for the lifetime of the user's account. The specific length of time for which events are saved hasn't been specified yet as we're still looking at usage of the API, but we will indicate this before the v2 API is made GA.