I was trying to create a chat application using SendBirdSDK. But I couldn't find any methods in the documentation to start chat with a user. I downloaded the sample project and checked it, but it contains group channels and open channels only.
Is there any such methods to create 1 to 1 messages or should I need to create a groupchat with single user ID only?
Any help will be apreciated
According to the documentation,
A Group Channel is a private chat. A user may join the chat only through an invitation by another user who is already a member of the chatroom. A Group Channel can consist of one to hundreds of members. Creating a channel with two members allows 1-to-1 messaging.
So you just need to create a Group Channel with two User IDs in order it to be a 1-to-1 chat. Also, you should enable the Distinct property, because also according to the docs:
Consequently, we recommend that you enable the Distinct property in 1-to-1 messaging channels in order to reuse the same channel when a user chooses to directly message a friend. If the property is disabled, the user will create a new channel even if they have had previous conversations with the friend, and therefore will not be able to see or access previously sent messages or data.
Reference: https://docs.sendbird.com/ios#group_channel_3_creating_a_group_channel
I am not sure but in group channel they provide 1-on-1 messaging. But for that you need to create a group with other userID
You can use the reference code from here:
https://sendbird.gitbooks.io/how-to-build-an-ios-messaging-app/content/en/implement_1-on-1_messaging.html
Related
We are using the graph API to send a message to the General channel of a Microsoft Team, which has a number of members.
We would like to allow any members to interact with the message via an adaptive card.
This is doable using say Action.OpenUrl or .Submit, however we need to know which user it is which is interacting. I imagine this must be a fairly common thing to do.
What solutions and options are available to do this?
For example, is it possible to obtain the user's Team id at the time an action is invoked ?
Every activity sent to the bot has a from property that identifies the user that sent the activity. You can see the full activity schema here. I advise you to run your bot in debug mode so that you can see all the data your bot receives. If you want to run your bot in debug mode and talk to the bot using Teams instead of Emulator, you can use tunneling: https://learn.microsoft.com/azure/bot-service/bot-service-debug-channel-ngrok
I'm implementing group chat feature using Layer SDK. From the iOS SDK how can I fetch the LYRConversation instance using the conversation ID considering that I am not a part of that conversation.
LYRQuery class specifies that it runs the queries only on the conversations that I am a part of and hence are stored in my local database.
I'm fetching a list of layer conversation IDs from my backend API (as trending groups feature). There does not seem to be any API provided by Layer's iOS SDK to join another conversation based on it's conversation ID.
Is there a solution to this?
In the above mentioned case, we need to add the user to the conversation via the platform API (on our backend server).
The sync will happen near instantaneously. We also have a newer method called waitForCreationOfObjectWithIdentifier https://developer.layer.com/docs/ios/api#lyrclient
that will let you specify an object id and then it will trigger as soon as that object has synced.
So to solve this issue, we made an API call to our backend server which added the user to the conversation. We also implemented waitForCreationOfObjectWithIdentifier to listen for when the conversation to which the user was added tp was synced to our local db, to inform the user about the same.
Thanks to layer support team for the quick clarification.
How do i get chat history for Zoipm chat iOS SDKs, i am logging using anonymous user using default controller, is there any pre-config to be set to get this.
From an end-user's perspective, there is no way of seeing a chat history. Each chat is treated more like a ticket as it creates a ticket with the transcript upon completion. A chat transcript can be sent to the end-user.
I suppose the end-user could look through their ticket history and effectively see the chats alongside their other submitted tickets.
I have: ios app;
Server: openfire;
Framework: xmppframework from Robby Hanson.
The logic of the app is when user has logged in, the app will push him into a random room which has the fewest number of members.
The app successfully gets a list of all rooms on start from the server.
But I need to know which of these rooms have an empty place for a user!
There is a method called "fetchmemberslist", but it only returns you a list of members of a room when you are connected to that room.
I need something that will do the same without connecting to a room.
Think if I have 1000 rooms. Using this method the app needs to connect to every room, set delegate, activate, wait for IQ, remove delegate, deactivate and at the and go thru an array to find one with the fewest members.
Isn't it too much to do?
I have dig over the whole internet and everything leads to getting a member list when you are connected to a room.
Is there a way of doing this without connecting a room.
Many thanks in advance!
1) fetchMemberList: queries room members, not list of people who are present in room now. Are you really want members, not online users count? Anyway, if you are room admin, this query works without joining room.
2) If you want to query online users, you should use different query - see http://xmpp.org/extensions/xep-0045.html#disco-roomitems
3) Also, no one can forbid you to implement room members/onlines count on the server side and create custom query like <iq id='123' type='get'><freeroom xmlns='my:freeroom:query' /></iq> with response of room JID like <iq id='123' type='result'><freeroom xmlns='my:freeroom:query'><jid>roomname#conference.example.com</jid></freeroom></iq> where roomname was found by server itself.
I am able to establish 1-1 chat by creating a room. I have used room because I will get history of last 50 messages (I would prefer more in number with paged results and expecting this feature in the near future).
I am unable to figure out how I can implement image and video sharing in between the text chat.
I also want this in the history I get. I mean I need to get the order of the text/image/video along with their details to display to the user.
When I upload an image file using Content module, the files are saved in a separate table in contents section (which is fine for user's gallery kind of app). But for chat we need to know who sent to whom and what (image/video/text).
I would like to know whether this is possible with the current version of the Quickblox sdk. or else is there any way we can establish this using Custom objects module? If possible, will this work if there are more number of users in the room? Please give me a solution to this.
If you want create chat with content, you need to use a Custom Objects. (in current QB version).
Advantage - you can also get chat history and implement deleting of message history.
But this method doesn't very simply.
At first you need create Custom objects represented next things:
single chat message
group chat message
(may be need create extended user profile)
At first, you can use QBChat module for changing service information between users.
When you need send message, you create Custom Object (CO) - message with parameters and upload it. When it uploading, you send service message via QB chat to your opponent user. When opponent will receive it, he should perform request for updating CO (in this case - single message).
As example, single chat message can contain next parameters:
opponent qb user id;
owner qb user id;
message text;
link to content;
Sending of content message divide to next steps:
At first, you need upload content file using Content module, and after this create message CO, upload it on server and send service message to your opponent