I'm in the process of developing a web application (java + jsp) that can send notifications to users. The user can subscribe to multiple events generated by the application and can choose to receive the messages associated with those events via multiple channels (email, sms, growl?, messenger); perhaps different messages through different channels; perhaps a daily message digest. Everything must be configurable by the user. Is there some framework that deals with this?
Rmarimon, check out Boomerang Notification Framework from Fuel9. With some basic SQL skills you can quickly develop dynamic notifications (email, twitter, fax etc). Good luck!
/M
Take a look at Amazon Simple Notification Service (Amazon SNS). It was just released (in beta). Looks pretty cool.
Agustin sends to email and SMS via twitter. Probably not exactly what you're after, but it might work.
There's also the Sun Java System Instant Messaging, which is not free.
Related
I need help with Microsoft teams integration. I have an system from which I want to send chat message to a particular user in MS teams upon an event in my system. How do I go about implementing this. The teams graph api documentation is not looking clear to me. Like it has body but no head and tail. I'm confused on where to start for this. I understand I need to use Graph API's create/send chat api to send messages but it says I need to configure a delegate user for this? How do I send messages on behalf of a external system? Can I can use Teams Java sdk based application? Or I need to create a bot? But I think it's for one-2-one conversation is it? I only want to send a one way message from external system to user. Someone with experience in this pls help me on a good approach for this.
All I want is to send chat message from external system to a user in teams.
You cannot use Graph API in this scenario if you want it on behalf of External system. The API is only available when you are having delegated permission.
Other option would be to create a Notification only bot. In this case please keep in mind that the bot needs to be installed in Teams of user you want to send notification. You can use this graph API to install bot in user's Teams- Install app for User.
Once it is installed you need to have user's Conversation.Id and ServiceUrl (maybe store it in database for all users). When you are done with everything you can send Proactive messages.
I need to send a Teams message to user/channel from the java service. These are notifications about events that happen in the application (e.g. when someone sells a product, they should receive a message on the teams that the product has been sold). I have already configured Microsoft Graph API for my application in Azure but as far as I know it is not possible to send message directly to users using "Application" permissions. (DOCS)
Is it any walk around for this restriction? Can I use a newly created account specifically for my purposes to authorize from the Java service in graph API and then sending messages to users?
I also found information about bots and sending proactive notifications to users. Is it possible to use it in my case as a proxy between java app and Teams user?
If I have multiple customers from multiple Microsoft organizations and I want to provide them my bot with proactive notification feature How should I deploy it? Does each client have to provide me an access to the Microsoft AD with application permissions and add my bot to his Bot Service? Or it is possible to deploy the bot only in my environment and make it available to my clients somehow?
What you're trying to do is called proactive messaging and you can read about it here: https://learn.microsoft.com/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages
You can deploy your bot wherever you like so long as you make sure the Teams app is published. You can make your bot available to everyone by publishing to the Teams app store, also called AppSource: https://learn.microsoft.com/microsoftteams/platform/concepts/deploy-and-publish/appsource/publish
If you don't want the app to be available to everyone, there may be a way to publish it to individual app catalogs: https://learn.microsoft.com/MicrosoftTeams/manage-apps
We have developed a Google Action with Dialogflow that responds to personalized requests from users and performs some tasks that require a certain amount of time, usually several minutes.
Our goal is to announce the result of the tasks using the "Broadcast" feature of Google Assistant, but we can't find a way to send the command to Google Assistant.
Our agent receives the user's request and launches a Java application that executes the task, so it is the Java application that must communicate with Google Assistant when the process is finished.
From the Java application we can communicate with the agent using Dialogflow RPC API, but not with Google Assistant.
Is there any way to send the request to Google Assistant from the Java app? or... since we can communicate with our Google Action Agent... how could we send the request through the agent?
In other words, could the agent communicate with google assistant to use any of its features, for example, "Broadcast ..."?
We have checked Google Assistant SDK as alternative, but we are confused about it.
Please, excuse me for my bad English.
Any help would be appreciated. Thanks!
The "Broadcast" feature is not available to user-developed Actions, and probably not a good scheme to use in any event - if users will need to wait for a while for an answer, they probably don't want the answer suddenly announced when they're not expecting it.
Actions are typically meant to be conversational, rather than taking a while to reply with the answer, which is why there is a 5 second limit on how long the fulfillment has to do processing. If you do need to take a while, you have a few options available to you:
First is that you can use some other method outside of the Assistant to deliver the answer - possibly using something like Firebase Cloud Messaging or sending email to the user.
Similarly, you might be able to use notifications. In this scenario, your Java program would send a notification through the Assistant to the user when the information is available and store the result. The user can then activate the notification to continue the conversation and get the result. This has the advantage that the answer isn't just blurted out, possibly when the user isn't ready for it, but does have a downside that speakers don't (yet) support notifications.
You can also look into using a Media Response to set up a way for you to poll for new messages periodically. Under this scheme, you would fire off the Java program which would get the result and then store this in a way your fulfillment server can access. In your reply to the user saying you're working on the results, you would include a Media Response for some audio that plays for, say, 15 seconds. When the audio finishes, your Action will be called again and you can check to see if the result is available. If so, you send the result and continue or end the conversation. Otherwise, just send a Media Response.
I'm using Amazon SNS to send simple messages to users. I'm using several topic with different endpoints including E-Mail.
Right now subscribtion to topics is handled by the Java back-end via AWS Java SDK. I get user's address and create a subscription via AmazonSNSClient. The user has to confirm his subscription. Later or he can unsubscribe just by clicking a link in the mail sent my Amazon SNS.
What I was wondering - isn't is possible to let users subscribe via e-mail?
Like sending an e-mail to subscribe#....amazonaws.com with the ARN of the topic as subject - or similar?
I could then just display a mailto: link as a subscription link in my application which has a few advantages in my case.
I see you comparing SNS to mailing lists. What you need to realize is that SNS isn't designed for use as a mailing list, and is indeed extremely terrible at sending any sort of nice looking email to end users. I would only recommend using SNS emails for things like system outage alerts to your administrative staff. I think this confusion comes in because the SNS mobile push feature is designed to push messages to end users, but the other SNS notification methods (email, http, SMS, SQS, Lambda) aren't designed for end-users at all.
If you want to stick with AWS services, then you could build a newsletter feature on top of SES, or use something like Sendy. I would personally recommend looking outside AWS for a full featured email service like MailChimp or SendGrid.
Subscribing to email notifications by email would be open to misuse - just find a way to construct an email with a forged from address and you'll have hundreds of subscribers.
So this clearly is not safe from a security perspective - which is probably whay it's not there in the first place.
I've been searching over the web but I can't seem to find some straight answer.
I've got an application developed and now I need to add it notifications. My issue is that I need each device to be unique and send each one of them a different notification. (I don't mean ONE UNIQUE notification) but I mean to send some users a notification and others don't.
How can this be done?
As a part of the GCM infrastructure, you will need to have your own web application that will allow individual instances of your app to register. When this happens, your Android application will pass to the web application a registration ID along with any additional information that you can use to identify the device. Once you have this information stored, you can pick and choose which device should receive your notification.
See: Architectural Overview section in the http://developer.android.com/google/gcm/gcm.html