Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion articles/bot-service-scenario-enterprise-productivity.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ The Enterprise Productivity Bot uses the following components:
Azure Active Directory (Azure AD) is Microsoft’s multi-tenant cloud based directory and identity management service. As a Bot developer, Azure AD lets you focus on building your Bot by making it fast and simple to integrate with a world class identity management solution used by millions of organizations around the world. By defining an Azure AD app, you can control who has access to your Bot and the data it exposes, without implementing your own complex authentication and authorization system.

### Graph API to Office 365
The Microsoft Graph exposes multiple APIs from Office 365 and other Microsoft cloud services through a single endpoint at https://graph.microsoft.com. Microsoft Graph makes it easier for you and Bot to to execute queries. The API exposes data from multiple Microsoft cloud services, including Exchange Online as part of Office 365, Azure Active Directory, SharePoint, and more. You can use the API to navigate between entities and relationships. You can use the API from your Bots using the SDK or REST endpoints as well as from your other apps with native support Android, iOS, Ruby, UWP, Xamarin and more.
The Microsoft Graph exposes multiple APIs from Office 365 and other Microsoft cloud services through a single endpoint at https://graph.microsoft.com. Microsoft Graph makes it easier for you and Bot to execute queries. The API exposes data from multiple Microsoft cloud services, including Exchange Online as part of Office 365, Azure Active Directory, SharePoint, and more. You can use the API to navigate between entities and relationships. You can use the API from your Bots using the SDK or REST endpoints as well as from your other apps with native support Android, iOS, Ruby, UWP, Xamarin and more.

### Dynamics CRM
Dynamics CRM is a customer engagement platform. Using Bots and CRM's APIs, you can build rich interactive Bots that can access the rich data stored in CRM. The power of Dynamics CRM is available to your Bot to create cases, check on status, knowledge management searches and more.
Expand Down
2 changes: 1 addition & 1 deletion articles/dotnet/bot-builder-dotnet-channeldata.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Implement channel-specific functionality | Microsoft Docs
description: Learn how to implement channel-specific functionality using the the Bot Builder SDK for .NET.
description: Learn how to implement channel-specific functionality using the Bot Builder SDK for .NET.
author: RobStand
ms.author: kamrani
manager: kamrani
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Customize user experience with pattern language | Microsoft Docs
description: Learn how to to customize FormFlow prompts and override FormFlow templates by using pattern language with the Bot Builder SDK for .NET.
description: Learn how to customize FormFlow prompts and override FormFlow templates by using pattern language with the Bot Builder SDK for .NET.
author: RobStand
ms.author: kamrani
manager: kamrani
Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ private async sendOAuthCardAsync(context: TurnContext, prompt?: string|Partial<A

In this code the Bot is waiting for a `TokenResponseEvent` (more about how this is routed to the Dialog stack is below). The `WaitForToken` method first determines if this event was sent. If it was sent, it can be used by the bot. If it was not, the `RecognizeTokenAsync` method takes whatever text was sent to the bot and passes it to `GetUserTokenAsync`. The reason for this is that some clients (like WebChat) do not need the Magic Code verification code and can directly send the Token in the `TokenResponseEvent`. Other clients still require the magic code (like Facebook or Slack). The Azure Bot Service will present these clients with a six digit magic code and ask the user to type this into the chat window. While not ideal, this is the 'fall back' behavior and so if `RecognizeTokenAsync` receives a code, the bot can send this code to the Azure Bot Service and get a token back. If this call also fails, then you can decide to report an error, or do something else. In most cases though, the bot will now have a user token.

If you look in the the bot code of each sample, you'll see that `Event` and `Invoke` activities are also routed to the dialog stack.
If you look in the bot code of each sample, you'll see that `Event` and `Invoke` activities are also routed to the dialog stack.

# [C#](#tab/csharp)

Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-channeldata.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Implement channel-specific functionality | Microsoft Docs
description: Learn how to implement channel-specific functionality using the the Bot Builder SDK for .NET.
description: Learn how to implement channel-specific functionality using the Bot Builder SDK for .NET.
keywords: channel specific, email, slack, facebook, telegram, kik, custom channel
author: RobStand
ms.author: kamrani
Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-conversations.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ You might design your bot to handle more than one type of task. For example, you

### Recognize intent

The Bot Builder SDK supplies _recognizers_ that can process a message to determine intent, so your bot can initiate the appropriate conversational flow. Call the recognizer's _recognize_ async method to determine the user's intent from their message content. You can then call the _get top scoring intent_ method on the result to get the the recognizer's top prediction.
The Bot Builder SDK supplies _recognizers_ that can process a message to determine intent, so your bot can initiate the appropriate conversational flow. Call the recognizer's _recognize_ async method to determine the user's intent from their message content. You can then call the _get top scoring intent_ method on the result to get the recognizer's top prediction.

A recognizer could use regular expressions, language understanding, or other logic that you develop. The following are examples of possible recognizers:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ To give you more control over the *dialog stack*, the **Dialogs** library provid

In this article we'll create sample dialogs for a hotel concierge bot that a guest could use to access common services: reserving a table at the hotel restaurant, and ordering a meal from room service. Each one of these features, along with a menu connecting them together, will be created as dialogs in a dialog set.

The bot's top-level dialog provides the guest with these two options. If the the guest wants to reserve a table, the top-level dialog uses the _begin dialog_ async method to start the table reservation dialog. If the guest wants to order room service, the top-level dialog instead starts the dinner ordering dialog.
The bot's top-level dialog provides the guest with these two options. If the guest wants to reserve a table, the top-level dialog uses the _begin dialog_ async method to start the table reservation dialog. If the guest wants to order room service, the top-level dialog instead starts the dinner ordering dialog.

The dinner ordering dialog first asks the guest to select food items off a menu, and then asks for their room number. The selection of food items is _also_ a dialog - it is called into play multiple times as a guest selects items from the menu before submitting the dinner order.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ The msbot tool will outline the deployment plan including location and SKU. Ensu

## Testing

Once complete, run your bot project within your development envrionment and open the Bot Framework Emulator. Within the Emulator, choose Open Bot from teh File menu and navigate to the .bot file in your directory.
Once complete, run your bot project within your development envrionment and open the Bot Framework Emulator. Within the Emulator, choose Open Bot from the File menu and navigate to the .bot file in your directory.

Then type ```hi``` to verify everything is working.

Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-howto-v4-luis.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ Your bot gets results from LUIS by calling the LUIS recognizer.

# [C#](#tab/cs)

To have your bot simply send a reply based on the intent that the LUIS app detected, call the the `LuisRecognizer`, to get a `RecognizerResult`. This can be done within your code whenever you need to get the LUIS intent.
To have your bot simply send a reply based on the intent that the LUIS app detected, call the `LuisRecognizer`, to get a `RecognizerResult`. This can be done within your code whenever you need to get the LUIS intent.

```cs
using System.Threading.Tasks;
Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-howto-v4-storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ We will first create a bot that will read and write data to Memory Storage. Memo

#### Build a basic bot

The rest of this topic builds off of a Echo bot. You can create one in either [C#](../dotnet/bot-builder-dotnet-sdk-quickstart.md) or [JS](../javascript/bot-builder-javascript-quickstart.md). You can use the Bot Framework Emulator to connect to, converse with, and test your bot. The following sample adds every message from the the user to a list. The data structure containing the list is saved to your storage.
The rest of this topic builds off of a Echo bot. You can create one in either [C#](../dotnet/bot-builder-dotnet-sdk-quickstart.md) or [JS](../javascript/bot-builder-javascript-quickstart.md). You can use the Bot Framework Emulator to connect to, converse with, and test your bot. The following sample adds every message from the user to a list. The data structure containing the list is saved to your storage.

# [C#](#tab/csharp)

Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-prompts.md
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ When you prompt for user input, you have several options on how to handle that i

## Additional resources

For a complete sample using some of these prompts, see the the Multi Turn Prompt Bot for [C#](https://aka.ms/cs-multi-prompts-sample) or [JavaScript](https://aka.ms/js-multi-prompts-sample).
For a complete sample using some of these prompts, see the Multi Turn Prompt Bot for [C#](https://aka.ms/cs-multi-prompts-sample) or [JavaScript](https://aka.ms/js-multi-prompts-sample).

## Next steps

Expand Down
2 changes: 1 addition & 1 deletion articles/v4sdk/bot-builder-tutorial-persist-user-inputs.md
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ public class GreetingsDialog : DialogSet
/// <summary>The ID of the main dialog.</summary>
public const string MainDialog = "main";

/// <summary>The ID of the the text prompt to use in the dialog.</summary>
/// <summary>The ID of the text prompt to use in the dialog.</summary>
private const string TextPrompt = "textPrompt";

/// <summary>Creates a new instance of this dialog set.</summary>
Expand Down
2 changes: 1 addition & 1 deletion contributor-guide/content-channel-guidance.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ The following types of content are delivered in other Bot Framework or Microsoft

* **Privacy information**: There is an all-up privacy policy for Microsoft Online Services that covers all of Azure. Privacy information specific to a service should be presented as technical content, not "privacy statements". See https://azure.microsoft.com/en-us/support/legal/.

* **Redirect articles**: Do not republish an article so that the content of the article is a link to the replacement content. Convert the article into an actual redirect so the user doesn't have to click to go the the replacement content.
* **Redirect articles**: Do not republish an article so that the content of the article is a link to the replacement content. Convert the article into an actual redirect so the user doesn't have to click to go the replacement content.

* **Reference content**: managed reference, REST APIs, PowerShell cmdlet help, schema reference, and error reference content is published to docs.microsoft.com, but not through this repository.

Expand Down
2 changes: 1 addition & 1 deletion contributor-guide/create-images-markdown.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Use the following guidelines when creating and including art files:

![This is an example of a red square used as a callout.](./media/create-images-markdown/gs13noauth.png)
* When it makes sense, feel free to crop images so the UI elements will be displayed in full size. Make sure that the context is clear to users, though.
* Avoid whitespace on edges of screenshots. If you crop a screenshot in a way that leaves white background at the edges, add a single pixel gray border around the image. If using Paint, use the lighter gray in the default color pallete (0xC3C3C3). If using some other graphic app, the RGB color is R195, G195, 195. You can easily add a gray border around an image in Visio--to do this, select the image, select Line, and ensure the the correct color is set, and then change the line weight to 1 1/2 pt. Screenshots should have a 1-pixel-wide gray border so that white areas of the screenshot do not blur into the web page.
* Avoid whitespace on edges of screenshots. If you crop a screenshot in a way that leaves white background at the edges, add a single pixel gray border around the image. If using Paint, use the lighter gray in the default color pallete (0xC3C3C3). If using some other graphic app, the RGB color is R195, G195, 195. You can easily add a gray border around an image in Visio--to do this, select the image, select Line, and ensure the correct color is set, and then change the line weight to 1 1/2 pt. Screenshots should have a 1-pixel-wide gray border so that white areas of the screenshot do not blur into the web page.

Example:

Expand Down
2 changes: 1 addition & 1 deletion markdown-templates/markdown-template-for-new-articles.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ms.date: 05/01/2017
---
# Markdown template for Bot Framework on Microsoft Docs (WIP)

Your article should have only one H1 heading, which you create with a single # sign. The the H1 heading should always be followed by a descriptive paragraph that helps the customer understand what the article is about. It should contain keywords you think customers would use to search for this piece of content. Do not start the article with a note or tip - always start with an introductory paragraph.
Your article should have only one H1 heading, which you create with a single # sign. The H1 heading should always be followed by a descriptive paragraph that helps the customer understand what the article is about. It should contain keywords you think customers would use to search for this piece of content. Do not start the article with a note or tip - always start with an introductory paragraph.

## Headings

Expand Down