Join chat request in stomp - spring-boot

I'm trying to create a chat application where spring boot stomp is in backend.
I want user to accept the chat request before starting the chat.
Ex: "A" user wants to chat with "B" user. Before A starts chatting, he will send a request,if B accepts both can chat.
I searched alot could not find much. If there is any blog or video or a code snippet would help me a lot.
Thank you

Related

Sending a message to users as a bot in bot channel of Microsoft Teams using the Graph API

I have created a bot by following the steps mentioned in the doc.I have authenticated user using oauth 2.0 (auth code grant) as mentioned in the doc and in reverse I got a access token. But when I send message to channel in the teams using (/teams/{id}/channels/{id}/messages) API the message was sent on behalf of me. But I want my bot as the sender of message. Here is the image of the message that I have sent using the above API. and is there any way to send direct message to user as a bot?
Instead of using the Graph, there's another approach using the Bot Framework itself, to send a message to a team channel, a group chat, or a 1-1 conversation. The code doesn't even need to live inside the bot itself, it just needs to leverage the bot framework under the covers (for example, I have several Azure Functions that pro-actively message users). This idea is called "Proactive messaging" and you can read more about it in the docs here.
You do need to get certain fields when the user first installs the bot though, or any time the bot receives a message. I've described that more at Programmatically sending a message to a bot in Microsoft Teams. You haven't said what language you're using, but there are examples for a bunch of them - I can send you links if you let me know what you're using.

User starting a conversation with another user and a chatbot

Not sure how to approach this.
The flow kind of goes like this:
1. The client initiates a conversation with the chatbot asking for support.
2. Eventually the chatbot creates a message such as this on a team channel where support agents are available. From my understanding I can create links that would open group dialogues like so ? https://teams.microsoft.com/l/chat/0/0?users=user#email.com,user2#email.com or using the id ?
How can I do this for creating a group chat with the user AND the chatbot ? I tried adding it's ID and it didn't work for some reason but adding real users separated by comma worked.
If anything is there a way to use the Graph API to detect if a conversation was started between someone on the channel and the client ?

how to configure a chat of whatapp with laravel app and twilio

I'm trying to create a sandbox chat with twilio with la-ravel using whats-app but unfortunately i found i cant handle to consume the whats-app twilio API for whats-app and use it am a bit good in la-ravel but not much in API please help
i want to send my message to the user that has subscribed to my whats-app number given by twilio and let the user be able to reply so i can get the message back

Multi-Tenant Bot with Unique Channel for every customer

We are building a bot which would require each of our customers to have their own SMS channel (unique phone number for them). From everything we can tell with the documentation of the bot framework is there is no way to do that. We want each of our customers to be able to add the bot to their own SMS number through twilio. Is this possible?
From everything we can tell with the documentation of the bot framework is there is no way to do that.
Yes you're right.
We want each of our customers to be able to add the bot to their own SMS number through twilio. Is this possible?
No, actually it's not possible :)
Shortly, BotFramework consist of three parts :
your bot logic which is a Web API service that exposes an endpoint
the channels (Skype, Facebook messenger, SMS etc)
the bot connector, where you create your bot by specifing the endpoint and one or multiple diiferent channels that the bot can use for conversations.
Because each channel can be associate only one time per endpoint hence per bot then you can't do multitenancy through the bot connector.
One solution is to create the multitenancy through the Web API service side by creating an endpoint for each customer. Maintenanbility will be difficult because of multiple endpoints you'll end up with the same number of bots into the bot director to manage. Each bot wil be associate to your customer number.
Updates: (I didn't test it but I'm pretty sure it can work)
Another solution is to use DirectLine channel and its Rest API that it exposes. If you opt for this solution it means that you will need to do a lot of things to make that work correctly after creating Direct Line channel:
you must create a client application to communicate with Direct Line channel through its REST API.
each customer can have their own number that you manage through Twilio
each message that a customer send using their SMS number and received via Twilio should trigger a call to the service of your client application
your client application will start a new conversation with Direct Line channel when a SMS is received.
each conversation started by your client application must take care about the SMS number who started the conversation by saving the state. Bot data per conversation and per user can help a lot.
when you receive a reply from the Direct Line Channel, your client application read the SMS number stored into the bot data and use this number to answer to the associated customer.
Hope it helps.
You can definitely do this.
You implement ICredentialProvider which is responsible for looking up appPassword by AppId and validating that the password is correct. This means you can have a database of bot AppId/Passwords that one endpoint services, and you look up the appid/secret and validate calls.
[ BotAuthentication(CredentialProviderType=typeof(SimpleCredentialProvider))]
Here is a simple sample implementation
https://docs.botframework.com/en-us/csharp/builder/sdkreference/d3/dde/_credential_provider_8cs_source.html

How to implement a chat application in codeigniter website?

I need to implement a chat window on my codeigniter website,and the chat option is not like facebook or gmail chat.The Live conversation is entirely between the admin and the user who has logged into the site,ie live chat for direct customer service
Thanks in advance.
A quick search on github gives me this:
https://github.com/Runnable/Chat-Example-App-for-Codeigniter-API-on-PHP
https://github.com/vgoodvin/ci-chat
https://github.com/llbbl/codeigniter-chat
You can think of it like a thread in a forum where someone creating a thread and the other someone make replies.
Depending on how you want to customize your apps, the interaction between the OP and those who will make replies will be rapid.
EDIT 1:
Assuming that you understand how MVC works, you can have something like this:
Your DB Structure:
Table User
Table Session
Table Message
A user can be in many Session (chat room), A message can only be posted to one chat session and a user can send many messages.
In your chat page you will have a to display the conversation, a giant text box where your user can write their message and a submit button.
When a user click the submit button, it will then make an HTTP POST to your controller, where your controller will cleanse the data (i.e. $this->form_validation->set_rules();
If the posted data is valid, send it to your model where it then be stored to your database.
Everytime the chat page is loaded what you want to do is:
Get the chat message for the associated session ID.
Again this is an oversimplified example. You can fork the code from the github i mentioned and try to install it on your local machine.
If you want messaging or chat and specially for codeigniter than use this library, Mahana-Messaging-library-for-CodeIgniter. I have used this, and i preferred you if you are learner. It have it's on database which you can manage and it will integrate in your project easily.
Implemented using Zopim chat widget,which is suitable for both CMS and MVC websites. https://www.zopim.com/

Resources