Forum Discussion

Lakshmi_145's avatar
Lakshmi_145
Brass Contributor
Nov 07, 2022

How to use SendOAuthCardAsync to send oauth prompt and wait for the token response

We are using OAuthPrompt " SendOAuthCardAsync " method to send oauth prompt to enable local language translation await

 

OAuthPrompt.SendOAuthCardAsync(new OAuthPromptSettings

{

ConnectionName = ConnectionName,

Text = "Please login",

Title = "Login",

Timeout = 300000,

}, stepContext.Context, null, cancellationToken);

 

 

But its not returning any dialog details. Is there any alternative solution to send the dialog result so that we can send the dialog details in dialog stack before redirecting to the token validating dialog step

  • Lakshmi_145 -An Invoke Activity is sent to the bot rather than the Event Activity used by other channels. This Invoke Activity must be forwarded to the dialog if the OAuthPrompt is being used.
    You can try with the below sample-

     

      AddDialog(new TokenExchangeOAuthPrompt(
                    nameof(TokenExchangeOAuthPrompt),
                    new OAuthPromptSettings
                    {
                        ConnectionName = ConnectionName,
                        Text = "Please Sign In",
                        Title = "Sign In",
                        Timeout = 1000 * 60 * 1, // User has 5 minutes to login (1000 * 60 * 5)
    
                        //EndOnInvalidMessage = true
                    }));
    
                AddDialog(new ConfirmPrompt(nameof(ConfirmPrompt)));

     

    Sample Link- Microsoft-Teams-Samples/MainDialog.cs at fbe311b133d2661c799cf70162b800a4850d815b · OfficeDev/Microsoft-Teams-Samples (github.com)

    • Lakshmi_145's avatar
      Lakshmi_145
      Brass Contributor

      Sayali-MSFT 

       

      Is TokenExchangeOAuthPrompt is same as like OauthPrompt. When i added TokenExchangeOAuthPrompt i was getting error.

       

      Reason why i used SendOAuthCardAsync  is to get the Signin card in the application local language.

      If add as dialog , it will take the local system language.

       

      While using SendOAuthCardAsync  , i am getting the sign in card in local language and once after logging successfully , its coming to token response event , but we are not able to come back to the dialog from where this oauth card is sent. It is able to find the particular dialog from dialog stack, but while calling RunAsync on the dialog its not going to the respective dialog step 

       

Resources