Push Notification with an authentication enabled client URL - exchange-server

Question : How can we subscribe for push notification with a basic authentication enabled URL?
We are developing a client exchange application in which one of the feature would require a timely notification from the exchange server. For this we decided to subscribe for push notification by providing a client web service URL. This client URL is enabled with basic authentication. Our question is how to provide this authentication details when we request for a push notification subscription? Can we somehow provide this credential in clientdata tag ?
Thanks and Regards,
Anish

No Push notifications in EWS are Anonymous by design the SubscriptionId is one thing you could use as a validation on the client end as it unique to the current subscription your listening for and will be available inside the SOAP message. Otherwise if you proxy the push through an intermediary would be another way of doing it.
Have you had a look at the actually data that is returned in a Push, the only thing you get is the EWSId's of the Item (or folders) and details of what type of notification is it is (along with the subscription id). No Message information is disclosed within a push and it always requires that you connect back the Exchange Server to get any details about items involved.
If you really can't live with an non authenticated endpoint then I would suggest you take a look at Streaming notifications https://msdn.microsoft.com/en-us/library/office/dn458792%28v=exchg.150%29.aspx . These rely on the client maintaining an Authenticated connection to the server at all times.

Related

Spring Catch-All Email

I want to create a gallery app which is automatically feed by emails. When you register on the app I will provide an email pseudo#domain.com When you send a picture to this email you will receive a push notification and then fetch the image when the app will be open.
To do so, I think about an smtp server (like https://github.com/docker-mailserver/docker-mailserver) and a spring boot to listen all emails (via imap or pop). When an email is received, I will check the from to find the user concerned, save the image until the user open the app to fetch it.
I saw some lib to have an embedded smtp server in a spring boot app (https://github.com/voodoodyne/subethasmtp). But if I understand well it's only for testing.
I didn't find so much information and use case. So maybe I have a bad approach, and read all email from a domain is not a good practice. Do you have some documentation about this ?

Bot Framework serviceUrl

I am developing a Notification Only bot to enable proactive Teams notifications.
As far as I am aware it is necessary to store the ServiceUrl from an incoming message to the bot endpoint. I have read that it is also possible that service Url can change in the future (although unlikely) and that if this happens the serviceUrl should be updated and used for future messages.
Using a test O365 instance in UK region I see the following behaviour:
When I add member to team or install the app to a team, the service Url comes through as:
https://smba.trafficmanager.net/uk/
When I remove a member from team or remove the app from team, the service Url comes through as:
https://smba.trafficmanager.net/emea/
If our service tries to send a notification via the rest api, using the /emea ServiceUrl it returns a 403 Forbidden
Doing the same using an O365 instance in US region the service Url is allways:
https://smba.trafficmanager.net/amer/
Is this expected behaviour or a bug?
Are there any rules on when the Service Url should be updated and when it should not?
Many Thanks.

How to get message events published on a Web API endpoint and feed it to bot framework v4 (C#, .Net Core Bot)?

I am using a third party API to provide Agent Handover (human chat) capabilities to my v4 based bot. The API requires a call back hook/ endpoint where it can send the messages/events back from the agent, and I have to get messages from it and display to users. When ever a new chat session is established a new session id is generated. And thus Session Id is passed back in all messages and events. Essentially they are sending events as Fire&Forget with a retry on failure.
For now I had implemented an eventstore (in Cosmos dB) to store events/messages and then poll Cosmos periodically display message back to user and mark them processed.
Is there any way to make it more real time or pub-sub kind of analogy?
I would like to know if some one have already implemented scenario like this. What should be the way to respond the incoming messages from agent to bot user.
Please suggest.
I would recommend creating a client using the Direct Line API to handle routing messages between the third party agent handover and the bot. Then in the bot you can pair the third party Direct Line conversation references with the user's conversation reference to forward the messages accordingly with proactive messages. For more details take a look at this Stack Overflow question.
Hope this helps!

Get notified about changes in a google calendar

I was wondering, is it possible to set up a Mac OS X app, to get notified when a user makes changes to a Google Calendar. Like what you can do with EKEventStore?
There’s a query method + (id)queryForCalendarListWatchWithObject:(GTLCalendarChannel *) object, but I’m not really sure how you should set up the GTLCalendarChannel object.
Or is the only way, other than polling, to use push notifications?
Thanks in advance.
You can use Google Calendar API which provides push notifications that let you watch for changes to resources. This makes periodic polling unnecessary.
You can use this feature to improve the performance of your application. It allows you to eliminate the extra network and compute costs involved with polling resources to determine if they have changed. Whenever a watched resource changes, the Google Calendar API notifies your application.
To use this API, you need to:
Register the domain of your receiving URL. Before you can set up a push notification channel, you must register the domain for any URLs you plan to use to receive push notification messages.
Set up your receiving URL, or "Webhook" callback receiver. Whenever a watched resource changes, your application will receive a notification message describing the change. The Google Calendar API sends these messages as HTTPS POST requests to the URL you specified as the "address" for this notification channel.
Set up a notification channel for each resource endpoint you want to watch. To request push notifications, you need to set up a notification channel for each resource you want to watch. After your notification channels are set up, the Google Calendar API will inform your application when any watched resource changes.
When a calendar changes, it will notify your app and the app does an API call to get the update. You can use one of the Google API client libraries to utilize push notifications.
Check these documentation and blog about Google Calendar API Push notifications.
Hope this helps!

Push Notification Service

I have read the article about Push Notification Service, but I am still confused. I’m a new for MS window phone application developing. My application needs to get the data in the whole class from web service that is for the specific organization. Hope someone can answer my question as below.
In my application, the phone rings and the user answer the phone during sending the request to the web request to get the data. What will happen if the web service sending back the respond?
In the above situation, do I need the Application Push Notification service?
I retrieve the data by using DataContractSerializer. If I need the Push Notification Service, is it meaning that I need to modify the webservice for returning the xml instead of the whole class?
The ongoing call will not disrupt the web request-response flow hence you need not be troubled about it

Resources