I am wanting to be able to post messages to Skype users via my bot, ideally the message would be posted using the users email address however the channel account for the user only has Id and Name.
Why does Skype not provide this information on the Activity?
Related
In Slack, users are pinged when they are #-mentioned in a channel. Is it possible for a bot or app to receive an event when a user is tagged this way? It doesn't seem to be on the Event Types API.
The app_mention event is meant to handle just this scenario.
Any time a message references your app by its bot username (e.g. #myBot), your app will receive this event along with metadata like the user ID who wrote the message, the text of the message, timestamp, and channel ID.
I have enabled Skype channel for my bot which on top of chat window shows option to login. I am unable to login using my work ID, rather I could login with my personal Microsoft account.
I could not find much documentation on this. How can I enable bot so that bot users can login only with their work email id?
This is the expected behavior as Skype doesn't let you create an account anymore with a business email address. If you want to test your bot by connecting it to Skype channel, then you can use your personal account. The Skype for Business channel is specifically designed for the usage of work email ID but it is being deprecated on the Bot Framework. I would suggest you to connect the bot to Microsoft Teams to login using work email ID.
I am creating a bot in aws-lex and will integrate it with Slack, FB Workplace and Yammer to start with.
I need to read the Slack user email address, then validate that against our webservice to ensure the user is registered. This will return some data about the users organisation that I need for further execution in lex.
I have no idea how to pass/extract the Slack user email (the one that is engaging in conversation with my Bot).
Any ideas?? Examples please! New to bot dev.
At least for slack you could do:
Under requestAttributes (from event) you can check the presence of x-amz-lex:channel-type. The value will be Slack if the user comes from slack.
You can then extract the user slack id from the event that is submitted to your lambda under the key userId
With that id, go to Slack API and call the method users.info. Now you can get the user email from the response.
I would like to open new conversations with users using the Microsoft Bot Builder on the Skype for Business channel. The only information I have is the user id (sip:user#domain.com)
In all the examples I could find, it is needed to save the conversation id/address of a user in a previous conversation to send a new message to this user.
How to create a new conversation as a bot to a user knowing only his id?
Thanks
Like you stated the userId is required to send a message to the user. A new conversation can be created by the framework but ultimately, you can't do anything without the userId and to obtain this the user has to contact your bot first. This is only true for channels like Skype. Other channels like E-mail just use the email address as an id. Skype uses a GUID as the id for their users. This is done so bots can't randomly add themselves to any user on Skype. Source
This doesn't mean you have to necessarily wait for the user to start a conversation. Whenever a user adds a bot to their contact list an event is send to the bot. This is the ContactRelationUpdate event. It warns the bot that a user has added the bot and the bot can then respond accordingly. Once this event is thrown you can obtain the userId from the activity and do whatever you want with it. Source
I am working on xmpp client for google chat. I need the Google Talk ID which looks something like "xxxxx#public.talk.google.com" of a user. Using oauth2, I am able to get the email id(gmail) and other profile information but I can't figure out how to get the Google Chat ID.
I know that I can use the email id in place of the Google Chat ID for all purposes. I need the Google Chat ID because I am using email ID as an identifier in my user table. Whenever a user receives a message in Google Chat (Hangouts), I am getting the from id as "xxxxx#public.talk.google.com" . There's no way for me to check if I have a record of the sender in my user table. If I can retrieve the Google Chat ID when people authenticate with my client, I can store it in the user table and use it to match when a user receives messages.
Sending messages works fine because I have the email id of the target user and I can use that to send message.
Please suggest if it's possible to get the Google Chat ID
There is even other problem: you can send or receive messages from users you don't even know the email ID. Maybe rely on using Google Talk ID always instead of email ID for your user table can be a better option.
BTW I heard something about that Google is discontinuing Google Chat...