microsoft teams
1717 TopicsConsent popup
Hi everyone, I’m reaching out for clarification regarding a popup that intermittently appears when users interact with our notification only bot, specifically when attempting to open a task module. After clicking "Agree" it shows "Enjoy using" and then appeared again. When clicking on Privacy/Terms of use nothing happens, while Permissions lead to opening another popup with endless loading, after closing it consent popup stops appearing for this app. Context: Sideloaded; Only a bot is declared in the manifest; App registration: Registered in Azure as multi-tenant with personal accounts enabled, SSO is not used; Interaction: Task module is triggered via Adaptive Card with Action.Submit, "msteams": { "type": "task/fetch" }; We’ve seen it only a few times in one tenant. It does not appear in most other sessions. Can someone tell if this is a bug or if there are some specific conditions that trigger this popup? Thanks in advance!Solved82Views0likes5CommentsUsing Graph API to create a OneNote tab in a Teams Channel
Hello, I'm trying to create a new tab in an existing channel that opens a OneNote notebook using Graph API. According to official documentation (https://learn.microsoft.com/en-us/graph/api/channel-post-tabs?view=graph-rest-1.0&tabs=http), the call should look like this: POST https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/tabs { "displayName": "OneNote", "email address removed for privacy reasons" : "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/0d820ecd-def2-4297-adad-78056cde7c78", "configuration": { "entityId": "<Notebook_id>", "contentUrl": "<OneNote_notebook_url>", "websiteUrl": "<OneNote_notebook_url>" } } It worked smoothly, but since recently, when you open the tab in Teams (desktop or web), it shows an error message stating that "the application can't be reached". In the end, the tab is created but OneNote notebook is not opened. Reading the official documentation here: https://learn.microsoft.com/en-us/graph/teams-configuring-builtin-tabs#onenote-tabs it mentions that when creating OneNote tabs, "configuration is not supported". Does this mean now you can't specify the OneNote notebook to open in the tab using Graph API? Any suggestions or recommendations? Thanks in advance! FerranSolved1.5KViews0likes14CommentsAzure Function Not Sending Response Back to Teams Bot – Integration Issue
Azure Function Called by Teams Bot – Triggered Successfully but No Response in Web Chat We are integrating a Microsoft Teams Bot (C#) with an Azure Function (Python). While the Azure Function gets triggered successfully, we are not receiving any response back in Web Chat or Teams. What We Have Done: Teams Bot (C#) is running locally in Visual Studio. We added code to call the Azure Function using HttpClient: What We Have Done: Bot Framework Bot (C#) is running locally via Visual Studio (on ports 7130/5130). We’ve added this code to call the Azure Function: var httpClient = new HttpClient(); var response = await httpClient.PostAsync( "https://<function-url>/api/Foundarybasic", new StringContent(JsonConvert.SerializeObject(turnContext.Activity), Encoding.UTF8, "application/json") ); Azure Function (Python) is deployed and logs show that it receives the request and processes it correctly: ( I tested this from Power Automate getting Proper Response) @app.route(route="Foundarybasic", auth_level=func.AuthLevel.ANONYMOUS) def Foundarybasic(req: func.HttpRequest) -> func.HttpResponse: logging.info("Function triggered") data = req.get_json() user_text = data.get("text", "No message") reply = { "type": "message", "text": f"Echo: '{user_text}' — Azure Bot integration is working!" } return func.HttpResponse(json.dumps(reply), mimetype="application/json", status_code=200) Problem: Azure Function logs show it receives and processes the request correctly. However, nothing shows up in Web Chat or Teams client. No error messages or failed HTTP codes are observed. We want the Teams Bot to call the Azure Function and relay its response back to the user, like an echo bot Is there a required structure for the response that the Bot Framework expects from an external HTTP call? Does the bot need to manually send the Azure Function's response back using turnContext.SendActivityAsync(...)? Are there any known working patterns or best practices for calling Azure Functions from a Teams Bot? Any help, samples, or suggestions would be greatly appreciated! Thanks!39Views0likes1CommentTeams Media Meeting bot POC
I'm trying to build a research poc to test MS solutions ability to carry out user sentiment analysis from live video streams - i.e. from Teams. Full disclosure - I'm very willing and have spent a lot of time on desktop research etc - but im not a developer, so have limited skills or experience here. So any advice very much welcomed! I have seen that there is an MS solution for meeting bots (application-hosted, or service-hosted) that might be able to help me gather the live video from Teams. Does anyone have any experience of these meeting bots - I would like to know more and if suitable, stand one up to assess it. Happy of course to provide more info if that would help, let me know.43Views0likes1CommentUrgent: Teams app publishing process blocked - app does not appear in the store after approval
Hello everyone, i am contacting you regarding a problem with the publishing of my Microsoft Teams app that started yesterday and is blocking my development work. Problem description: After developing a new version of my MS Teams app, I can no longer successfully publish it in my organization. The app is uploaded in the Developer Portal, released in the Teams Admin Center, but then does not appear in the Teams App Store under "Built for your org", so I cannot test it. Chronology: I am an admin in my organization and am developing a Teams app Before yesterday, the publishing process went smoothly: Upload in the Developer Portal → Appearance in the App Store → Test Yesterday, a colleague installed the app for testing purposes Since then, I can no longer publish new versions (they do not appear in the App Store) The upload and release in the Admin Center work without an error message However, the app does not appear in the App Store afterwards, neither in the desktop client nor in the web client Attempts have already been made to solve this: Completely restarted Teams client several times App version increased in manifest (to 1.2.0) App deleted and re-uploaded in Developer Portal App deleted and re-released in Teams Admin Center Waited for a delay of several hours Cleared cache (as far as possible on Mac) Test in web client (with the same result) Special observations: In the Mac client, the button "Upload a custom app" is grayed out with the note to contact my IT admin (I am the admin myself) On the Service Health Page, there is an active incident with the ID MO1093370 that affects Microsoft Teams I suspect that the issue is related to the current service degradation, which is described in the health page as "An infrastructure component is not processing requests as efficiently as expected" and explicitly affects Microsoft Teams. Is there a way to fix or work around this issue so that I can continue my development work? Can you confirm whether there is a connection with the current service degradation? Thank you in advance for your help. Best regards MichaelSolved108Views0likes4CommentsPowershell for creating a Auto Attendant
Hello I would like to create an Auto Attendant through Powershell. The command is New-CsAutoAttendant Teams keeps asking about the DefaultCallFlow. I would like to hardcode the command like this: New-CsAutoAttendant -Name "xx" -LanguageId "fr-FR" -TimeZoneId "Romance Standard Time" How do I add the DefaultCallFlow and then redirect it to an external number Regards JFM_12Solved57Views0likes4CommentsChange Teams App Domain
I have a multi tenant app available in the Teams App store. I have to change the domain for that app due to Azure CDN Standard from Microsoft (classic) being retired. Instead of a ".azureedge.net" domain I'd like to use my own subdomain going forward. To prevent service disruptions I would like to host the app frontend on two domains simultaniously and then change the domain in a manifest update. However, it seems the App Registration Resource (Application ID URI) needs to contain the domain name for Teams to allow access to the app, otherwise I get the following error message: Get SSO token failed with error: App resource defined in manifest and iframe origin do not match Creating a new app registration would mean every customer would need to grant access again to my app registration. What is the recommended approach to changing domains for a Teams app?46Views0likes3CommentssetReaction and softDelete for channel messages broken?
Hi, I have some issues using the setReaction and softDelete APIs for channel messages in MS Teams. It’s relatively easy to reproduce for me from the the MS Graph explorer. I have a message in a channel, that I programmatically want to set a reaction for (or delete it). The user calling the setReaction API is actually also the owner of the message. This can be seeing by the first screenshot, where updating the message succeeds without problems. But if I either try to set a reaction on the message, or delete it, I’m getting a weird ACL related error message (see second and third screenshot). The fourth screenshot is the relevant part of the decoded access token used by graph explorer, showing that I do have both the ChannelMessage.Send and ChannelMessage.ReadWrite permissions set for the token that are required for the setReaction and softDelete API calls according to the docs. I’ve also tried the same on a chat channel. There setReaction does work as it is supposed to, but softDelete also fails with an error message. Any help here would be appreciated.221Views0likes10CommentsSimple Workflow to Replace Teams Incoming Webhooks
Replacing Teams Connectors As you may be aware, Teams connectors have been deprecated (as discussed in Retirement of Office 365 connectors within Microsoft Teams). This means that a change to the connector URL must be made by December 31, 2024 (more information forthcoming) and that you should not create new webhooks by August 15 th , 2024. After August 15 th , 2024, you should be using the Power Automate Workflows app in Teams instead of webhooks. The connectors are being retired for several reasons, including security, scalability and flexibility. These are all requests our customers have made repeatedly in the past. Power Automate workflows are powerful 5 th generation programs which use a drag-and-drop, graphical user interface (GUI) paradigm to allow powerful data transformations and selective publishing to Teams. There is a lot of information for Power Automate Workflow at Browse and add workflows in Microsoft Teams - Microsoft Support. This article is not meant to make you an expert on Power Automate or Workflows. There are plenty of articles for you to read to become an expert. I just wanted to create an article on how you can recreate the original webhook experience. From there, you should be able to experiment with the new capabilities Workflows provide. Replacing an Incoming Webhook To replace the incoming connector, I’m going to start by creating a new team in my test tenant. All of this will be done using the Teams Web Client (because it’s easier for me to work with at present). From the Teams blade, I’ll press the ‘+’ symbol and choose ‘Create team.’ I’ll name my team a really thought-provoking name like ‘Webhook-Replace’ and give it an awesome description. I’ll then click on the ‘Create’ button. Teams will congratulate me for making such a great team with a great team name and ask me to add new members. I’ll add my System Admin account (just to make it easier for that account to delete this later) and Teams will drop me in the ‘General’ channel for this tab (all teams will have a default ‘General’ tab). Since it doesn’t matter to me where I make this webhook replacement, I’m fine with the General tab so I’ll just use it and not add another channel [Important Note: At the time I’m writing this, private channels do not work with Power Automate Workflows. My understanding is that they are working to expand Workflows to include private channels, but that work isn’t completed yet.] Install Power Automate Workflows Now, I need to install Power Automate Workflows into Teams. To do this, I’ll click on the ‘Apps’ button on the far-left vertical bar which will open up the apps I have available to install [Note: This list will be limited based on the App permission and App setup policies and/or App Centric Management. For App permission policies, if you don’t see Workflows in the Apps section, you need to discuss availability of this app with your Teams Administrator. Even if it appears in your apps, you may need to REQUEST the app in order to install it, depending on these policies. For App Centric Management, the App will need to be assigned to you in order to use it] In the apps application that opens up, you can type ‘Workflows’ in the ‘Search apps and more’ textbox to quickly find the app. Click the ‘Add’ or ‘Install’ button. This will open the Workflows setup/information dialog. From here, you can do a few things. If you just click the ‘Add’ button, it will install/add the app as a ‘one-on-one chat app’. This is actually what I want, so that it allows me to determine as I design the workflow, how it acts. For a webhook replacement, this is what I recommend. You can use the down carat and choose to add to a team, chat or meeting but I will leave you to experiment with these features. This adds the ‘Workflows’ app to the far-left application bar and opens the application. This is the Workflows App in Teams. Personally, I don’t like using it because it will occasionally make suggestions or assumptions that go beyond what I really want to do. So, I almost always use the ‘open in browser’ option from the upper right. This opens up the full Power Automate flow page. From the left, I’m going to choose the ‘Templates’ blade. In the ‘Search templates’, I’ll enter ‘Teams Webhook’ and hit enter to find the webhook templates. As you can see, you can start with a Teams template. The recommended template to begin with is ‘Post to a chat when a webhook request is received’ so that is what I will use here. We’ll change it after opening it and I’ll explain all of this in a moment. Choosing the template opens the flow connection. The ‘This flow will connect to:’ should be pre-populated with your username and contain a green checkmark. Click on ‘Continue’ and the flow will ask you which team and channel you wish to send to. Here, I’m going to use the dropdown to select ‘Webhook-Replace’ from my list of Teams. Then, I’ll choose the ‘General’ channel and choose to ‘Edit in advanced mode.’ You could simply choose ‘Create’ but that will automatically create the flow and we’ll need to edit it anyway. Clicking ‘Edit in advanced mode’ will display the current flow template. By default, this flow will take whatever is sent to the webhook and attempt to send it as an adaptive card. Generally, this won’t work. You need to do some transformation on the data, unless the application is sending an Adaptive Card – which most providers don’t do. Instead, most providers such as GitHub, send a JSON filled with data and events. Going through how to connect GitHub is out of scope for this article, though I may follow up with a GitHub case in a new article later. Likewise, creating an adaptive card to present in the Teams channel is outside the scope of this article. I’m just going to show you a simple JSON dataset and how to send it to a channel. For this, I’m going to use a very simple CURL commandline (from Windows) with a very small, easy JSON payload. It's just a lame payload with text and ‘hello world’ but this is just an article to show a simple webhook replacement. First, we need to get the URL from the ‘When a Teams webhook request is received’ step. Click on that step and it will open up the settings for the step. Copy the HTTP URL and place it in a safe place. (For me, I’ll use it in the Powershell curl.exe I have copied and pasted above). Even though the JSON payload here is simplistic, I still need to have the flow process it. In order to do that, I’m going to need to add something to this flow. So, I’ll choose the ‘+’ button between the two existing flow steps (because I need to parse the JSON between those two steps) and choose to ‘Add an action’. This opens the ‘Add an action’ popup on the left side. We want to process json, so I’ll enter ‘JSON’ in the search bar and look at my options. I see that ‘Data Oepration’ has a ‘Parse JSON’ option, so I’m going to choose that by clicking on it. This adds the action between the two steps, exactly like I wanted. This also opens the ‘Parse JSON’ settings because I still need to instruct this flow step on how to process the JSON content. I’ll click in the ‘Content’ textbox. This will bring up the ‘actions’ choices on the right side of the textbox. The lightning bolt means ‘Dynamic Content’. The ‘fx’ stands for formulas or expressions. I want to process Dynamic Content coming from the webhook step, so I’ll choose the lightning bolt. This brings up the potential content from the webhook step. The ‘Attachments Adaptive Card’ will allow you to parse any Adaptive Cards coming into the webhook. ‘Attachments Item’ processes a single attachment included to the webhook package. The ‘Attachments’ collection are any multiple attachments to the package sent to the webhook. Finally, the ‘Body’ just gives you the body of the package sent to the webhook. Since I’m sending a simple JSON body, that’s what I want here. Now, I have to supply the schema for the content I’m sending. At the very bottom of the textbox you have the option to ‘Use sample payload to generate schema.’ If you can’t write JSON Schema but you have a sample JSON payload that you’re sending, you can add it here and let the service process it. I’m going to do this, especially because this is such a simple payload. Clicking on this opens a window where you can type or paste a sample payload. I’ll enter my simple payload here and click the ‘Done’ button at the lower right corner which will populate the schema. You don’t need to ‘Save’ here; once entered it will remain until you change it. As I said, creating an adaptive card is beyond the scope of this article, so I’m going to delete that. I’ll Select the ‘Send each adaptive card’ to open the ‘Settings on the left’. Next, I’ll click the three dots on the right side of that popup and choose ‘Delete.’ Now, I’ll click the ‘+’ circle under the ‘Parse JSON’ and choose ‘Add an action’ to send a message to my team’s channel. This opens the ‘Add an action’ popup on the left. I want to add an action specific to Microsoft Teams, so I’ll select those from the available action categories. This brings up available steps for Microsoft Teams. I’ll scroll down and find the one I’m looking for – ‘Post message in a chat or channel.’ This opens the ‘Post message in a chat or channel’ settings. From here, I’ll want to ‘Post As’ a ‘Flow bot’ (you can change this to a user but there’ll be other settings necessary; I’m happy with the ‘Flow bot’). Next, I’ll drop down the ‘Post In’ selection box which will allow me to choose either a ‘channel’ or ‘group chat.’ Obviously, I want to post to a ‘channel’. Wait a second and this will open up further choices of which Team and channel. I’ll pick the ‘Webhook-Replace’ team and ‘General’ channel. Finally, I’ll click in the ‘Message’ textbox. In this box, I can actually type a message to send – but I’m interested in more ‘Dynamic Content’ so I’ll choose the lightning bolt and from the ‘Parse Json’ step, choose ‘body text’ (Note: If you look back at the automatic schema generated in the ‘Parse JSON’ step, you’ll see that ‘text’ is the only ‘Propery’ in the ‘Properties’ collection so this will post the VALUE (string) from the ‘text’ property). You might see that there are 2 ‘Advanced Parameters’ you can set. I’m not going to set them, but they will allow you to set a static or dynamic ‘Subject’ and ‘Hosted contents.’ With that, we’re done. From the bar on the upper right hand side of the screen we want to ‘Save’ the content (you can test with ‘flow checker’ if you want) and then click the ‘back’ arrow from the upper left on the same bar. You’ll get a pop up that says ‘Your flow is ready to go’. Just click ‘Got it’. The flow will have a title the same as the template. You can click ‘Edit’ for the details action and rename it, add a description and so on. I’m not going to – it’s time to TEST!! I click ‘enter’ on my Powershell curl.exe command and it processes! Conclusion As you can see, setting up a Power Automate webhook processor is not as simple as the old Teams ‘Incoming Webhook’ but it is much more scalable and flexible and, though I didn’t delve into the options here because this was a simple article to show how to replace the incoming webhook functionality, it can provide security to ensure that malicious actors can’t hijack your webhook and send data to your users.29KViews0likes10Comments