Forum Widgets
Latest Discussions
How to enable a Microsoft Teams bot to work in private channels?
We have developed a bot for Microsoft Teams that can send messages to: Team members' personal chats Public channels within the team However, when we attempt to install the bot in a private channel, we encounter the following error: "App isn't supported in the private channel. Select another channel." We would like to enable our bot to: Be installed in private channels. Send messages in the private channel where it is installed. Send messages to team members who are part of that private channel. Is there a way to configure the bot or update its app manifest to support private channels? If so, what steps are required? Are there any limitations or additional permissions needed to achieve this?11Views0likes2CommentsTeams Bot vs. Azure Bot
Hi, What is the differences between the Bot what you can setup on Teams' Development Portal and Azure Bots? Azure Bot's requires response group. But Bots from development portal seems to not requiring that. Is the development portal only way to setup such a bots, or should I be able to setup those bots from some other way as well?Petri-XDec 04, 2024Bronze Contributor10Views0likes1CommentSide-panel Teams meeting app becomes unusable but stays open/visible when user joins a breakout room
I am working with a side-panel Teams meeting app. A customer noticed behavior that I have been able to replicate but have not found an explanation for, or a way to prevent. Issue summary When a user has a side panel app open, and the user is pushed into a Teams meeting breakout room, the side panel app remains open/visible but the app content disappears (making the app unusable). Replicating this behavior 1. User has app open in Teams meeting side panel. In the below screenshot, note that the app is listed in the interface (red circle), and open in the side panel. 2. User is pushed into a breakout room. The user does not interact with the interface and is automatically pushed into a breakout room. 3. Upon joining the breakout room, the app appears to remain open in the side panel, but the content disappears. In the below screenshot, note that: The side panel app content is now empty/blank. The app icon disappears from the Teams meeting interface (red circle). This is expected, but just want to note that the app is not attached to the breakout room at all. Thoughts My understanding is that apps don't carry over from the main Teams meeting into breakout rooms (though apps can still be added inside of breakout rooms), so the curiosity here is why the side panel app remains open when moving from the main room to a breakout room. And one more interesting note — using the three dots and "Reload" on a side panel app gets the app to reload and work again inside the breakout room, despite the app not being listed as an interface tab within the breakout room. I don't necessarily need the app to remain usable as a user joins a breakout room, but I am wondering what's going on here with the app remaining open/visible.dave990Dec 04, 2024Copper Contributor13Views0likes1CommentMicrosoft Teams Payment Gateway Error: 'Rejected. ,[object Object]' - How to Resolve?
I'm facing an issue where customers are unable to make payments through Microsoft Teams. Here's the error message they see: We can't charge this payment method due to an issue on our end. Try another payment method or contact support and mention error code: Rejected. ,[object Object] (CV: M4JNvCMLrmPAb7vV.0.0) Steps I’ve Taken to Troubleshoot: Cleared Teams cache. Used the new Teams desktop app. Tried reproducing the issue in browser incognito mode. Added a different credit card. Findings: The issue persists across different environments and with new payment methods. A support engineer confirmed (Tracking ID: #2410100060001473) that the issue is with the payment gateway for third-party apps in Teams. I uploaded the HAR file to the portal under Case #2409110040002919 for further investigation. Additional Context: Our credit card works perfectly for other purchases within Azure Portal and Admin Center. This issue has been unresolved for over two months, despite multiple follow-ups. Does anyone know how to address or bypass this issue with the payment gateway for third-party apps on Microsoft Teams? Any guidance would be much appreciated.VipassanaMahaleDec 04, 2024Copper Contributor6Views0likes0CommentsAbility to add metadata to manifest to inspect when receive chat for routing to different pipelines
Hello, We have developed a Microsoft Teams application that we deploy from the Microsoft Teams store. So, we have a single inbound chat channel (Azure Bot) for multiple inbound tenants - and we route to the custom tenant\instance base on their tenant ID. It all works great. Chime V5 site We have some customers who deploy our solution for IT Support, HR, and even legal departments. When our customers deploy, they generally take our app manifest, possibly update the icon and name, and then push to the left side navigator of their MS Teams clients. If they are just using the IT Support chat service, then is simple an only involves pushing one manifest. Info on some of the MS Teams app package stuff. However, since the traffic is taking place using a single inbound chat channel, and some customers might want 3 separate MS Teams navigation\bots (IT Support, HR Questions, Legal) we currently can only install one icon and then we need display some menu (adaptive card) when the employee starts a chat. This is OK, but not great. So, we might have 1, 2, or even 10 chat services that we deploy for a customer. Right now, we place all of these behind one MS Teams icon on the left side navigator. For instance: Blog article on pushing to teams If we could attach some metadata (even a very simple int) to a field in the manifest, and have this value attached to chat session, then we could attach multiple icons to the left side navigator - and automatically 'route' the inbound chat to the appropriate chat service. For example, these are all totally different chat services (bots) that have different AI prompts, agent routing options, adaptive cards, and UI. We'd like to be able to create unique icons on the MS Teams client for each chat pipeline - and some simple addition to the manifest could help with this Is there anyway to 'attach' any custom metadata at the MS Teams manifest level and have that value included as part of the chat conversation? For instance, basic IT Support would be a 1 HR requests 2 Legal 3 and we could use our single service, and Azure Bot, to take in 3 different requests from 3 different icons and have them routed to the appropriate bot pipeline.72Views0likes6CommentsCannot navigate to newly created channel tab by Graph API
Description: We are experiencing an issue with navigation in our published MS Teams custom app. The app is published to the org catalog. We are using microsoft/teams-js and teamsfx to implement a "Create Tab" user experience. The problem is that after the tab is successfully created, we use the pages.navigateToApp to open the tab and in some cases the navigation fails. The code snippet we use to create the tab looks like as follows: export class GraphClient { credential: TeamsUserCredential; client: Client; constructor(clientId: string, initiateLoginEndpoint: string) { this.credential = new TeamsUserCredential({ clientId, initiateLoginEndpoint, }); const authProvider = new TokenCredentialAuthenticationProvider(this.credential, { scopes }); this.client = Client.initWithMiddleware({ authProvider: authProvider, }); } async getTeamsApp(externalId: string): Promise<{ id: string; externalId: string; displayName: string; distributionMethod: string; } | null> { const response = await this.client.api('/appCatalogs/teamsApps').filter(`externalId eq '${externalId}'`).get(); return response['@odata.count'] === 0 ? null : response.value[0]; } async getTeamsInstalledApp( teamId: string, teamsAppId: string ): Promise<{ id: string; teamsAppDefinition: { id: string; teamsAppId: string; }; } | null> { const response = await this.client .api(`/teams/${teamId}/installedApps`) .filter(`teamsAppDefinition/teamsAppId eq '${teamsAppId}'`) .get(); return response['@odata.count'] === 0 ? null : response.value[0]; } async installAppToTeam(teamId: string, teamsAppId: string): Promise<void> { const teamsAppInstallation = { 'email address removed for privacy reasons': `https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/${teamsAppId}`, }; await this.client.api(`/teams/${teamId}/installedApps`).post(teamsAppInstallation); } async addTabToChannel( teamId: string, channelId: string, teamsAppId: string, tabCreationProps: TabCreationProps ): Promise<{ tabEntityId: string; webUrl: string; }> { const tabEntityId = generateRandomString(32); const teamsTab = { displayName: tabCreationProps.displayName, 'email address removed for privacy reasons': `https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/${teamsAppId}`, configuration: { entityId: tabEntityId, contentUrl: tabCreationProps.contentUrl, websiteUrl: tabCreationProps.websiteUrl, removeUrl: tabCreationProps.removeUrl, }, }; await this.client.api(`/teams/${teamId}/channels/${channelId}/tabs`).post(teamsTab); return { tabEntityId, webUrl: tabCreationProps.websiteUrl }; } } export async function ensureAppInstalledInTeam( graphClient: GraphClient, teamId: string, teamsAppId: string ): Promise<void> { const installedApp = await graphClient.getTeamsInstalledApp(teamId, teamsAppId); if (!installedApp) { await graphClient.installAppToTeam(teamId, teamsAppId); } } export async function createTabInChannel( graphClient: GraphClient, teamId: string, channelId: string, teamsAppExternalId: string, tabCreationProps: TabCreationProps ): Promise<{ tabEntityId: string; teamsAppId: string; channelId: string; webUrl: string; }> { const teamsAppDefinition = await graphClient.getTeamsApp(teamsAppExternalId); if (!teamsAppDefinition) { console.error('Teams App is not found in org catalog of current Teams environment.'); throw new Error('Unable to locate Teams App in current organization catalog.'); } const teamsAppId = teamsAppDefinition.id; try { await ensureAppInstalledInTeam(graphClient, teamId, teamsAppId); const { tabEntityId, webUrl } = await graphClient.addTabToChannel( teamId, channelId, teamsAppId, tabCreationProps ); // Navigate to the newly created channel tab pages.navigateToApp({ appId: teamsAppId, channelId: channelId, pageId: tabEntityId, }) } catch (error) { console.error('Fail to ensure the app is installed in the channel before adding a channel tab', error); throw new Error('Fail to pin content in Teams channel. Please check the logs for details.'); } } Expected Behavior: The newly created tab should be open instead of opening the channel conversation tab or raising error. Actual Behavior: If a user has never opened any channels of a team in Teams, then pinning any channel tab under that team in the Teams app will successfully open a new tab. If a user has already opened one of the channels in that team and pins that same opened channel's tab, it will redirect to the channel's conversation interface. If the user opens another channel that has not been opened before in that team and pins that channel tab, it will redirect but then a dialog error will pop up, displaying the channel’s conversation interface. However, in both cases, the tab is created, and once the conversation interface is shown, the new tab can be seen within the channel. If pinning a tab results in a dialog error and displays the channel’s conversation interface, the tab does not appear in the channel.zdeng88Dec 03, 2024Occasional Reader31Views0likes1CommentGetting "WebApplicationInfoIdConflictOnSideloadingIntoTeam" when trying to update a custom app
Hi, I'm trying to update the custom app that's already been published to the Teams store, I personally can't sideload it into my tenant, because I'm getting this error: `WebApplicationInfoIdConflictOnSideloadingIntoTeam` on this POST: `https://teams.microsoft.com/api/apps/emea/beta/users/apps/definitions/appPackage` The error has also been flagged by the Teams submission team, since they can't upload the newer version to the same tenant, hence they're not able to test it. I've tried deleting all the other test applications from Teams Admin as well as Teams itself, with no luck. I've been dealing with the issue for over a month now. Is there a way to publish a newer version of the app for testing purposes, would I have to duplicate it?branegDec 03, 2024Copper Contributor61Views0likes4CommentsTeams Personal Tab Links do not work on teams mobile application
Dear Teams Community I have an issue with a simple custom ms teams app. The app has been created in "Developer Center" / App-Studio and just opens a SharePoint Online site within a tab (iframe). This works fine in Teams-Web-App, Teams-Desktop-App but not in Teams-Mobile-App. The links in the iframe which refer to other SharePoint sites do not work, there is no error or something, it's just not doing anything. What can I do to solve this problem? It seems that there are other users with the same problems: -https://techcommunity.microsoft.com/t5/microsoft-teams/hyperlinks-in-teams-website-stopped-working/m-p/3254029 -https://techcommunity.microsoft.com/t5/microsoft-teams/hyperlinks-not-working-in-website-tab-when-using-sharepoint/m-p/3261274#M109537 Thanks in advance, MichaelSolvedved-leachimDec 02, 2024Brass Contributor3.5KViews0likes13CommentsCan we place a cancel button next to the sign-in button in the sign-in prompt (OAuth prompt)
Hi Team, Currently we ate using the below code and oauth prompt settings for using the MS delegated graph api permissions. private async Task<DialogTurnResult> PromptStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { return await stepContext.BeginDialogAsync(nameof(OAuthPrompt), null, cancellationToken); } Can we add one more button Cancel for users if they are not interested to sign in. Currently we are handling by adding a custom message saying user to type 'cancel' if they don't want to continue sign in. But that's like an extra effort from user side. Also, we have tried the below code, public static OAuthCard GetOAuthCard() { var oauthCard = new OAuthCard { Text = "BotFramework OAuth Card", ConnectionName = "OAuth connection", // Replace with the name of your Azure AD connection. Buttons = new List<CardAction> { new CardAction(ActionTypes.Signin, "Sign In", value: "https://example.org/signin"), new CardAction(ActionTypes.ImBack, "Cancel") }, }; return oauthCard; } But this also didn't worked. We have sent this card as a text prompt attachment but sign in button didn't workedLakshmi_145Dec 04, 2024Brass Contributor47Views0likes3CommentsError : The bot is not part of the conversation roster. while sending message in channel through bot
We have a bot that can be installed in a Team as well as in personal scope.We are facing issue when bot is trying to send message in the channel where it is installed. It was working fine few days back but all of a sudden, it's throwing error: > {"error":{"code":"BotNotInConversationRoster","message":"The bot is > not part of the conversation roster."}} > Details : > teamId :19:3684c109f05f44efb4fb54a988d70286@thread.tacv2 > Error: Operation returned an invalid status code 'Forbidden' > StackTrace: at Microsoft.Bot.Connector.Conversations.CreateConversationWithHttpMessagesAsync(ConversationParameters > parameters, Dictionary`2 customHeaders, CancellationToken > cancellationToken) at > Microsoft.Bot.Connector.ConversationsExtensions.CreateConversationAsync(IConversations > operations, ConversationParameters parameters, CancellationToken > cancellationToken) Below is my code: var channelData = new TeamsChannelData { Channel = new ChannelInfo(cId), Team = new TeamInfo(cId), Tenant = new TenantInfo(tenantId) }; var conversationParameters = new ConversationParameters { IsGroup = true, Bot = null, ChannelData = channelData, Members = null, Activity = activity, }; await connectorClient.Conversations.CreateConversationAsync(conversationParameters); The bot is able to send direct message to users Note: - I can confirm that the bot is part on the team, and it is installed within the team. Bot is able to send one-to-one message to the user. We are facing issues only when trying to send message in a channel.46Views0likes2Comments
Resources
Tags
- microsoft teams1,652 Topics
- developer1,283 Topics
- Meetings219 Topics
- Chat206 Topics
- Administrator131 Topics
- Settings100 Topics
- Calling98 Topics
- files64 Topics
- teams53 Topics
- devices50 Topics