Closed johnataylor closed 4 years ago
I think Skype sends ContactRelationUpdate
• Bing is no longer a channel • Kik is a channel • Slack is a channel
Skype does NOT send ConversationUpdate (I don’t think Facebook does either).
We have updated both C# and JavaScript in master. I'm not closing this, just relabeling, because we would like to keep this open as a doc issue and something to base samples on.
@EricDahlvang can you take another look.
Anything I wasn't sure about I made italics.
@johnataylor this is one my favorite documents.
Web Chat will send: • "message": with "text" and/or "attachments" • "event": with "name" and "value" (as JSON/string) • "typing": if the user set an option, namely "sendTypingIndicator" Web Chat will not send "contactRelationUpdate". And Web Chat do not support "messageReaction", no one explicitly ask us to support this feature.
By default, Web Chat will render: • "message": will render as either carousel or stacked, depends on the option in the activity • "typing": will render for 5s and hide it, or until next activity come in • "conversationUpdate": will hide • "event": will hide • Others: will show a warning box (we never see it in production) Web devs can modify this render pipeline to add/remove/replace any custom render.
Devs can use Web Chat to send any activity type and payload, we don't doc this feature, we don't recommend this feature. We always recommend custom things goes to "event" activity.
Does this need to be updated with LINE events?
I'm not sure if the :white_check_mark: is the correct here - the end of conversation docs say that Direct Line passes the activity forward to the client but does not do anything with this information. For Direct Line and Web Chat, should this be ⬜️ instead?
Also please note that WebSocket vs REST is a whole other layer of complexity to this conversation that is not accounted for above. For example, Typing only works on WebSocket and not REST, so Direct Line expecting to receive Typing is only true when using WebSockets.
From the cortana side...
Hi; regarding how close conversation is used in Cortana
Desktop
Mobile Same but different.
So…. App< Hi I am Cortana. What can I do for you? User> Open SlowChess App< I’m on it! [Launch.Intent] SlowChess<Welcome to ShowChess. I see you have a game in progress. What is your move? Or do you want to see the board? User>move Q C6 to C7 SlowChess<Black Queen C6 takes White Pawn on C7. Want to see the board or leave? User>leave SlowChess<Thanks for playing! [endConversation] App< Cortana here. What can I do for you?
Hopefully one day we supported nested (stacked conversations with warm hand offs. In that case, endConversation pops the stack.
I have other use cases I’d love to see 😊
For example As a skill developer, I can set the duration up to a reasonable amount for the user to respond such that I can change the course of a conversation or provide feedback to the user. As a skill developer, the skill is notified upon the end of rendering such that I can I can reprompt the user or change the flow of a conversation. (For example, if I send an audio card, I am sent an event when it finishes playing.)(Parity with Google Actions.)
Cortana ignores tokenResponse because it handles its own oauth. I [tried to] put a diagram together here. https://github.com/bw-kforce-ms/CortanaSkillsWIP/blob/master/Support/OAuth.md#supporting-multiple-channel-oauth
Does cortana get conversation updates? We implement welcome by watching for a Microsoft.Launch intent.
Categorized Activities by Channel
The following tables show what events (Activities on the wire) can come from what Channels.
This is the key for the tables:
Activities can meaningfully be split into separate categories. For each category we have a table of possible Activities.
Conversational
("Message Reactions" are things like a "thumbs up" on a previous comment. They can happen out of order so can be thought of as similar to buttons. This Activity is currently sent by the Teams Channel.)
Welcome
Application Extensibility
Microsoft Teams
This is very important: if using Dialogs for the OAuth Prompt to work the Invoke.TeamsVerification Activity must be forwarded to the Dialog.
Message Update
OAuth
This is very important: if using Dialogs for the OAuth Prompt to work the Event.TokenResponse Activity must be forwarded to the Dialog.
Uncategorized
Out of Use (includes Payment specific Invoke)
Summary of Activities supported per Channel
Cortana
Direct Line
Email
Facebook
GroupMe
Kik
Teams
Slack
Skype
Skype Business
Telegram
Twilio
Summary Table All Activities to All Channels
[edited by @corinagum]