> For the complete documentation index, see [llms.txt](https://docs.mluvii.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mluvii.com/pro-it-specialisty/napojeni-chatbotu/microsoft-bot-framework.md).

# Microsoft Bot Framework

## Ukázková implementace

Na Githubu je k dispozici [příklad implementace bota s integrací na mluvii](https://github.com/mluvii/mluviibot)

## Podporované formáty Microsoft Hero Cards

V tuto chvíli mluvii podporuje následující funkcionality karet [Hero Card](https://docs.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-add-rich-card-attachments?view=azure-bot-service-3.0):&#x20;

**Typ hero karty (contentType):**

* application/vnd.microsoft.card.hero
* application/vnd.microsoft.card.thumbnail

**Rozložení přiloh (AttachmentLayout):**

* List
* Carousel

Chat input vlastnosti:

* [Vstupní rady](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-add-input-hints?view=azure-bot-service-4.0)
* [Navrhované akce](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-add-suggested-actions?view=azure-bot-service-3.0) typu [imBack](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-add-rich-cards?view=azure-bot-service-3.0#process-events-within-rich-cards)

## Integrace s mluvii

Chatbot vytvořený v [Microsoft Bot Framework](https://dev.botframework.com) může s mluvii komunikovat pomocí [ChannelData](https://docs.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-channeldata). Může tak například vypsat seznam dostupných operátorů nebo odeslat email od klienta.

### Přiklad odeslání požadavku

```
private async Task ConnectToOperator(IDialogContext context)
  {
      var data = JObject.Parse(@"{ ""Activity"": ""Forward"" }");
      var act = context.MakeMessage();
      act.ChannelData = data;
      await context.PostAsync(act);
  }
```

### Přiklad přijetí odpovědi

```
private async Task OnMessageRecieved(IDialogContext context, IAwaitable<IMessageActivity> result)
  {
      var activity = await result;
      if (activity.AsEventActivity() != null && activity.ChannelData != null)
      {
          var availibleOperatorsInfo =
              JsonConvert.DeserializeObject<GetAvailableOperatorsResponse>(activity.ChannelData);
          await OnAvailibleOperatorsResponse(context, availibleOperatorsInfo);
      }
  }
```

### Identifikace kanálu mluvii

Při komunikaci s botem, se mluvii identifikuje pomocí konstantního Id *mluvii\_guest* v poli `From`. Např:

```json
"channelId": "directline"
...
"from": {
    "id": "mluvii_guest"
}
...
"conversation": {
```

## Next steps

[Zkontrolujte podporované aktivity](/pro-it-specialisty/napojeni-chatbotu/podporovane-aktivity.md)
