BotBuilderCommunity / botbuilder-community-dotnet

Part of the Bot Builder Community Project. Repository for extensions for the Bot Builder .NET SDK, including middleware, dialogs, recognizers and more.
MIT License
278 stars 170 forks source link

Oauth prompt issue: Unable to use 3rd party oauth identity providers #513

Open RamkumarManavalan opened 1 year ago

RamkumarManavalan commented 1 year ago

Hello Team,

I have developed a bot using Bot Framework Composer (v2.1.2 dotnet/C#) and deployed the same as Azure Bot Service. In the bot framework composer, I installed the nuget package 'Bot.Builder.Community.Adapters.Webex'. And, made the changes below: appsettings.json: { ... "runtimeSettings": { "adapters": [ { "name": "Microsoft.WebexAdapter", "enabled": true, "route": "webex", "type": "Bot.Builder.Community.Adapters.Webex.WebexAdapter" } ], ... "components": [ { "name": "Bot.Builder.Community.Adapters.Webex", "settingsPrefix": "Bot.Builder.Community.Adapters.Webex" } ], ... } ... "WebexAccessToken": "xxxxx", "WebexPublicAddress": "https://webexapis.com/v1/", "WebexSecret": "xxxxx", "WebexWebhookName": "xxxxx", ... }

Startup.cs: public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.MaxDepth = 128; //HttpHelper.BotMessageSerializerSettings.MaxDepth; }); services.AddSingleton<IBotFrameworkHttpAdapter, WebexAdapter>(); .... }

I am able to successfully communicate to my bot from the webex chat app.

Now I need to let my users authenticate themselves via 3rd party identity providers such as Google and Microsoft. To do that, I use the Oauth Login Prompt option in the composer. However, when I try to run that with Webex, I get the error below from the bot service:

System.NotSupportedException: OAuth prompt is not supported by the current adapter at Microsoft.Bot.Builder.Dialogs.UserTokenAccess.GetUserTokenAsync(ITurnContext turnContext, OAuthPromptSettings settings, String magicCode, CancellationToken cancellationToken)

Is there any other way for me to use this webex adapter and let the users authenticate via 3rd party identity service providers? Thanks.