Indata i anpassningsbara dialogrutor – referensguide
GÄLLER FÖR: SDK v4
Bot Framework SDK definierar olika indatadialogrutor för att samla in och verifiera användarindata.
Input type | Indataklass | Description | Returer |
---|---|---|---|
Basklass | InputDialog | Det här är basklassen som alla indataklasser härleds från. Den definierar alla delade egenskaper. | Ett objekt. |
Text | Textinput | Används för att be användarna om ett ord eller en mening. | En sträng. |
Antal | NumberInput | Används för att be användarna om ett nummer. | Ett numeriskt värde. |
Bekräftelse | ConfirmInput | Används för att begära en bekräftelse från användaren. | Ett booleskt värde. |
Flera alternativ | ChoiceInput | Används för att be om ett val från en uppsättning alternativ. | Värdet eller indexet för markeringen. |
Fil eller bifogad fil | AttachmentInput | Används för att begära/aktivera en användare för att ladda upp en fil. | En samling bifogade objekt. |
Datum eller tid | DateTimeInput | Används för att be användarna om datum och tid. | En samling datum-tid-objekt. |
Oauth-inloggning | OAuthInput | Används för att göra det möjligt för användarna att logga in på en säker webbplats. | Ett tokensvar. |
InputDialog
De indataklasser som tillhandahålls av Bot Framework SDK härleds alla från den grundläggande indatadialogrutan, som härleds från dialogklassen. Alla indatadialogrutor har följande vanliga egenskaper:
AllowInterruptions
Ett booleskt uttryck. true
för att låta den överordnade dialogrutan avbryta indatadialogrutan. annars . false
Kommentar
Den överordnade dialogrutan för indata kan också avbrytas. Det innebär att när AllowInterruptions
är true
körs identifieraren i den överordnade anpassningsbara indatadialogrutan och dess utlösare utvärderas.
AlwaysPrompt
Ett booleskt uttryck. Om true
, fråga alltid efter indata, om false
, fråga bara när den bundna egenskapen är null eller tom.
Standardvärde
Ett anpassningsbart uttryck som representerar standardresultatet för indatadialogrutan. Om användarens indata misslyckas för maximalt antal svängar avslutas indatadialogrutan och standardvärdet anges till den här egenskapen.
DefaultValueResponse
Svaret som skickas när användarnas indata misslyckas med valideringen för MaxTurnCount vänds och en DefaultValue anges.
InvalidPrompt
Aktivitetsmallen som du vill använda för indata igen om användarens indata identifieras men misslyckas med valideringen. (Om indata misslyckas för maximalt antal varv används standardvärdet och standardvärdesvaret skickas.)
Kommentar
Egenskapen InvalidPrompt
fungerar endast tillsammans med egenskapen Validering .
MaxTurnCount
Ett heltalsuttryck. Det maximala antalet gånger som du vill be om indata. Om den här gränsen överskrids används standardvärdet och standardvärdesvaret skickas.
Prompt
Aktivitetsmallen som du först ska fråga efter användarindata med.
Property
Minnessökvägen, eller ett uttryck som utvärderas till minnessökvägen, för egenskapen som indatadialogrutan ska bindas till. Minnessökvägen används för att hämta det initiala värdet för indatadialogrutan. Den kommer också att användas för att lagra resultatet av den här dialogrutan. Prompt
Både egenskapen och går igenom igenkänningsValue
- och valideringsstegen, så ett ogiltigt initialt värde resulterar i en uppmaning.
Använd detta för att definiera vilken egenskap som indatadialogrutan är bunden till. Till exempel:
UnrecognizedPrompt
Aktivitetsmallen som du vill använda för indata om användarens indata inte känns igen. (Om indata misslyckas för maximalt antal varv används standardvärdet och standardvärdesvaret skickas.)
Valideringar
En lista över booleska uttryck. Identifierade indata är ogiltiga om något av dessa uttryck utvärderas till false
. Du kan använda this.value
för att undersöka användarindata i valideringsuttrycken. Valideringar uttrycks med hjälp av anpassningsbara uttryck
Värde
Ett stränguttryck. Minnessökvägen för egenskapen för att hämta indata från varje tur. Den här egenskapen används som startvärde för indatadialogrutan om dialogrutans egenskap utvärderas till null eller tom. Om både dialogrutans egenskaps- och värdeegenskaper utvärderas till null eller tomma kommer dialogrutan att fråga efter indata.
Saker att tänka på när det gäller egenskapen Value
:
- Egenskapen
Value
är ett anpassningsbart uttryck. - Om uttrycket returnerar null kan indatadialogrutan försöka hämta data från indata direkt.
- Om uttrycket är ett värde används det som indata.
- Med
Value
egenskapen kan du definiera hur data, till exempel Identifierarresultat , är bundna till indatadialogrutan.
Exempel:
- Så här binder du indata till alla åldersentiteter som identifieras i indata: "=@age"
- Så här använder @age du eller @number som indata: "=coalesce(@age, @number)"
Dricks
Du kan se ett exempel som använder dessa InputDialog
egenskaper i kodexemplet i avsnittet NumberInput nedan.
TextInput
Använd textinmatning när du vill ordagrant acceptera användarindata som ett värde för en specifik information som roboten försöker samla in. Exempel är användarens namn och ämnet för ett e-postmeddelande.
Åtgärden TextInput
ärver alla egenskaper som definierats i InputDialog och definierar ytterligare en egenskap:
OutputFormat
: Med hjälp av anpassningsbara uttryck kan du ändra strängen, till exempel i kodexemplet underOutputFormat
uttrycket med versal den första bokstaven i varje ord i användarnamnet.
NumberInput
Ber användaren om ett tal.
Åtgärden NumberInput
ärver alla egenskaper som definierats i InputDialog och definierar dessa två ytterligare egenskaper:
DefaultLocale
: Anger standardspråket för indatabearbetning som ska användas om inte en av anroparen skickar den. Språk som stöds är spanska, nederländska, engelska, franska, tyska, japanska, portugisiska, kinesiska.OutputFormat
: Med anpassningsbara uttryck kan du vidta åtgärder för att manipulera talet på något sätt. Du kan till exempel skriva ett uttryck för att konvertera ett tal som anges som en temperatur som anges i Fahrenheit till dess motsvarande Celsius-värde, utföra en matematisk beräkning, till exempel lägga till skatte- och fraktkostnader till det angivna värdet eller helt enkelt utföra en typkonvertering för att ange att värdet antingen är ett flyttal eller heltal som visas i exempelkoden nedan.
ConfirmInput
Bekräftelseindata är användbara att använda när du har frågat användaren en fråga och vill bekräfta deras svar. Till skillnad från åtgärden Flerval som gör det möjligt för roboten att presentera en lista för användaren att välja mellan, uppmanar bekräftelsen användaren att fatta ett binärt beslut (ja/nej).
Åtgärden ConfirmInput
ärver alla egenskaper som definierats i InputDialog och definierar följande ytterligare egenskaper:
ChoiceOptions
: Används för att formatera presentationen av de bekräftelseval som presenteras för användaren, det här är ett anpassningsbart uttryck som utvärderas till ettChoiceSet
objekt. Det härChoiceSet
objektet används endast som en säkerhetskopia om det första försöket till igenkänning av feletConfirmInput
misslyckas. När åtgärdenConfirmInput
körs försöker den först utvärdera indata som ett booleskt värde. Om det misslyckas gör det ett andra försök, den här gången med hjälp av en valigenkänning som utvärderar mot ChoiceSet.ConfirmChoices
: Alternativen eller ett anpassningsbart uttryck som utvärderas till de val som ska visas för användaren.DefaultLocale
: Anger standardspråket för indatabearbetning som ska användas om inte en av anroparen skickar den. Språk som stöds är spanska, nederländska, engelska, franska, tyska, japanska, portugisiska, kinesiskaOutputFormat
: StandardutdataformatetConfirmInput
för åtgärden är booleskt. Du kan åsidosätta det med hjälp avOutputFormat
egenskapen, ett anpassningsbart uttryck som du kan använda för att ändra returresultatet om det behövs. Du kan till exempel använda detta för att fåConfirmInput
åtgärden att returnera ett tal:OutputFormat = "if(this.value == true, 1, 0)"
. Om den här egenskapen anges är uttryckets utdata det värde som returneras av dialogrutan.Style
: Detta definierar vilken typ av lista som ska presenteras för användaren när de bekräftar sina indata. Detta använder uppräkningenListStyle
som består av:None
: Ta inte med några alternativ för prompt.Auto
: Välj automatiskt rätt formatmall för den aktuella kanalen.Inline
: Lägg till alternativ för att fråga som en infogad lista.List
: Lägg till alternativ för att fråga som en numrerad lista.SuggestedAction
: Lägg till alternativ för att fråga som föreslagna åtgärder.HeroCard
: Lägg till alternativ för att fråga som ett HeroCard med knappar.
ChoiceInput
Alternativindata är en uppsättning alternativ som presenteras för användaren som ett val med flera val som gör att du kan visa en lista över alternativ som användarna kan välja mellan.
Åtgärden ChoiceInput
ärver alla egenskaper som definierats i InputDialog och definierar följande ytterligare egenskaper:
ChoiceOptions
: Den här egenskapen används för att formatera presentationen av de bekräftelseval som visas för användaren.Choices
: Ett anpassningsbart uttryck som utvärderas till en ChoiceSet som innehåller listan [ordnad] med alternativ som användaren kan välja mellan.DefaultLocale
: Anger standardspråket för indatabearbetning som ska användas om inte en av anroparen skickar den. Språk som stöds är spanska, nederländska, engelska, franska, tyska, japanska, portugisiska, kinesiskaOutputFormat
: ett anpassningsbart uttryck som utvärderas till ett av uppräkningsvärdenaChoiceOutputFormat
.Style
: Detta definierar vilken typ av lista som ska presenteras för användaren när de bekräftar sina indata. Detta använder uppräkningenListStyle
som består av:None
: Ta inte med några alternativ för prompt.Auto
: Välj automatiskt rätt formatmall för den aktuella kanalen.Inline
: Lägg till alternativ för att fråga som en infogad lista.List
: Lägg till alternativ för att fråga som en numrerad lista.SuggestedAction
: Lägg till alternativ för att fråga som föreslagna åtgärder.HeroCard
: Lägg till alternativ för att fråga som ett HeroCard med knappar.
RecognizerOptions
:FindChoicesOptions
eller uttryck som utvärderas tillFindChoicesOptions
. HarFindChoicesOptions
följande egenskaper:NoValue
: Ett booleskt värde.true
för att söka efter varje vals värdeegenskap , annarsfalse
. Standardvärdet ärfalse
.NoAction
: Ett booleskt värde.true
om du vill söka efter rubriken för varje vals åtgärdsegenskap, annarsfalse
. Standardvärdet ärfalse
.RecognizeNumbers
: Ett booleskt värde.true
för att tillåta att indata återgår till att använda en nummerigenkänning för att matcha mot indatavalen; annars .false
Standardvärdet ärtrue
.RecognizeOrdinals
: Ett booleskt värde.true
för att tillåta att indata återgår till att använda en ordningstalsigenkänning för att matcha mot indatavalen; annars .false
Standardvärdet ärtrue
.
DateTimeInput
Frågar efter datum/tid.
Åtgärden DateTimeInput
ärver alla egenskaper som definierats i InputDialog och definierar följande ytterligare egenskaper:
DefaultLocale
: Anger standardspråket för indatabearbetning som ska användas om inte en av anroparen skickar den. Språk som stöds är spanska, nederländska, engelska, franska, tyska, japanska, portugisiska, kinesiska.OutputFormat
: Standardutdata förDateTimeInput
är en matris medDateTimeResolutions
, med den här egenskapen kan du definiera ett anpassningsbart uttryck. Det värde som returneras blir det slutliga värdet för dialogrutansproperty
egenskap, oavsett om det utvärderas till en datum-tid eller inte.
AttachmentInput
Använd för att begära en bifogad fil från användaren som indata.
Åtgärden AttachmentInput
ärver alla egenskaper som definierats i InputDialog och definierar den här ytterligare egenskapen:
OutputFormat
: EllerAttachmentOutputFormat
ett uttryck som utvärderas till enAttachmentOutputFormat
. GiltigaAttachmentOutputFormat
värden är:All
: returnera alla bifogade filer som en lista.First
: returnera endast den första bifogade filen.
OAuthInput
Använd för att be användaren att logga in.
Åtgärden OAuthInput
ärver alla egenskaper som definierats i InputDialog och definierar följande ytterligare egenskaper:
ConnectionName
: Namnet på OAuth-anslutningen som konfigurerats på sidan för Azure AI Bot Service-inställningar för roboten.Text
: Ytterligare text som ska visas i inloggningskortet.Title
: Rubriktext som ska visas i inloggningskortet.Timeout
: Det här är antalet millisekunder somOAuthInput
väntar på att användarautentiseringen ska slutföras. Standardvärdet är 900 000 millisekunder, vilket är 15 minuter.
Åtgärden OAuthInput
definierar också två nya metoder:
GetUserTokenAsync
: Den här metoden försöker hämta användarens token.SignOutUserAsync
: Den här metoden loggar ut användaren.
Åtgärden OAuthInput
returnerar ett TokenResponse
objekt som innehåller värden för ChannelId
, ConnectionName
, Token
, Expiration
. I exemplet nedan placeras returvärdet i minnesomfånget turn
: turn.oauth
. Du kan komma åt värden från detta som visas i LoginSteps()
metoden: new SendActivity("Here is your token '${turn.oauth.token}'.")
.
Ytterligare information om OAuth
Följande länkar innehåller generaliserad information om ämnet autentisering i Microsoft Bot Framework SDK. Den här informationen är inte anpassad eller specifik för anpassningsbara dialogrutor.