public async Task <string> CreateAuthorizeUrlAsync(Microsoft.Bot.Connector.IActivity activity) { var doc = await GetDiscoveryClient(); var request = new RequestUrl(doc.AuthorizeEndpoint); var extra = new Dictionary <string, string> { { OidcConstants.TokenRequest.ClientSecret, "secret" } }; var authorizeUrl = request.CreateAuthorizeUrl( clientId: "Bot", responseType: OidcConstants.ResponseTypes.CodeIdToken, responseMode: OidcConstants.ResponseModes.FormPost, redirectUri: signinUrl, scope: "openid profile offline_access orders basket marketing locations", state: AuthData.Encode(activity.Recipient.Id, activity.ChannelId, activity.From.Id, activity.Conversation.Id, activity.ServiceUrl), nonce: CryptoRandom.CreateUniqueId(), extra: extra); return(authorizeUrl); }