Discuss everything related to Miro API, SDK, embedding and Miro Platform apps development.
Recently active
Tried to find my answers in the doucumentation for text widgets, but without much success. This is what I’m looking at:I can’t figure out which width attribute corresponds to what exactly since they are both different in value. And if both of these width attributes impact something different, or if they both just determine the actual width of the text widget, where one of the attributes has priority over the other. Also the reason why I would even want to set width manually, is that when creating a text widget with a API call and simply giving it some text, it doesn’t determine the expected width well enough, for the text to fit in a single line.The call beneath will give me this result ^await miro.board.widgets.create({ "capabilities" : { "editable" : true }, "scale" : textSize, "rotation" : 270, "style" : { "backgroundColor" : "transparent", "backgroundOpacity" : 1, "bold" : 0, "borderColor" : "transparent", "bord
I have build an app in Miro by following the guide Build Your App (miro.com) . I have created a Html file (using a custom web api that is hosted in Azure) that adds 2 Icons in the bottom bar of the board and added the linkto the App URL field.The app works fine for the board owner and users with Edit access to the board, i.e. they are able to see the icons and redirect to another page on click. But, the issue occurs in the users with viewer and commenter - they are not able to see the Icons and I can see that in the sources (in developer tools ), the html file is not loading.Could you please confirm if this is the default behavior of Miro and if there is any workaround for this.
Hi, Is it possible to integrate Miro with Blackboard? How can I do this if possible. Thank you,
Hello! I am able to provide my auth bearer token to a POST request containing the json to create a widget on my board via PostMan or the live test in the API Documentation. However, running a local server / react app to call the fetch api using the same url and http headers/credentials results in CORS error. How am I to test the rest api for my app using the fetch api and running on localhost:XXXX?
Tried to use some Miro CSS classes today and noticed that the miro-select class spawns 2 icons, while miro-select--small only one. Could this be fixed?
hi everyone,What I’d love to do is allow users of our product to connect their account to our product (like Salesforce connect or creating a connected account in Stripe if anyone is familiar with those). The way this would workClient would generate a key / secret for Miro Client would input that in our products dashboard We can now dynamically create whiteboard for them in various meetings/events they they have in our product using the rest API Does anyone know if this is possible? Or is anyone doing anything similar - even with a workaround? thanks,Patrick Note: I had a good look through existing forums but didn’t see an obvious answer to this which is why I am creating a new thread
I am trying to migrate to miro.requestAuthorization, but I get the above error. Anyone know how to fix it?
I’m unsure how to go about migrating from getToken() to getIdToken(), currently I have this code to make a request to my Api. const appId = miro.getClientId(); const clientId = appId.toString(); let token = await miro.getToken(); let boardInfo = await miro.board.info.get(); let teamInfo = await miro.account.get(); console.log(token) return this.makeCall(() => fetch(`${this.baseUrl}/${clientId}/team/${teamInfo.id}/JiraCard/board/${encodeURIComponent(boardInfo.id)}`, { method: 'POST', headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' }, body: JSON.stringify({ "issueKey": issueKey, "x": x, "y": y }) }), (successResponse) => successResponse.json())If I replace getToken() with getIdToken() the OAuth Token is invalid, as getIdToken() returns a different type of token. How exactly do I go about decod
Hello, When shape widget is transformed into sticky, card or a different widget type it looses the original ID as well as metadata stored in them. Ideally conversion should retain all attributes but it seems that’s not happening. Could this be considered as bug and fixed?
When I install an new app from the marketplace ( in this case https://miro.com/marketplace/undraw/ ) it once says something like “this app will have permission to read and write all your boards”.is it normal for an app that “only” inserts clip art to a board to get these permissions? Shouldn’t it be the other way round: the app only provides the image and trusted Miro adds it to the board? How can I see / compare permissions of the apps I installed / on the marketplace? ie. how does https://miro.com/marketplace/unsplash/ with similar functionality behave? where can I find the EULA / privacy for apps on the miro marketplace? cf. Atlassian Marketplacehttps://www.atlassian.com/licensing/marketplace/termsofusehttps://www.atlassian.com/legal/privacy-policy#how-we-use-information-we-collect
Hello, has anyone integrated MIRO with a learning management system so MIRO whiteboards can be used within a learning management system? Thanks!
Hi! Use Case:I’m considering diving into the API to try to automate the upload of PDFs, extracting all their pages, laying them out in a specific layout, and then framing each page.Is this at all feasible?Thanks!-judd
Hi,I’ve just started to code a react app with typescript and I’m struggling with getting some props (ex. “Text”) from interfaces like IStickerWidget which extends IWidget. interface IWidget extends IWidgetNamespaces { readonly id: string readonly type: string readonly bounds: IBounds readonly groupId?: string readonly createdUserId: string readonly lastModifiedUserId: string }Here is the scenario: 1️⃣ I’m using the type declaration miro.d.ts. 2️⃣ Here is the snippet code where:1) I get the widgets selected (through the SDK IBoardSelectionCommands and its get() method),2) filter by type (STICKER) and3) then try to get again the specific widget, but through the get command from IBoardWidgetsCommands this time, as I thought the SDK was going to return an IStickerWidget type base on the filterby id.let selectedWidgets:SDK.IWidget[] = await miro.board.selection.get()let selectedStickers:Array<SDK.IWidget> = selectedWidgets.filter((widget) => widget.type ==
Attempting to implement a Web-plugin that imports/uses data published on a webserver.This works OK if the webserver is the same as where the Web-plugin is published.But when data is published on different server the browser CORS protection prevents accessing the data.I’m not a web hacker, but if I understand it correctly to allow this the Server needs to modify the CORS policy by adding the data source location to the “Allow list”. Am I correct in this ?Would it be possible to add such listing in the plugin setup or installation?This would allow for a range of quite interesting features:Importing and synchronizing JIRA issues without JIRA Integration (our corp. policy does not allow such external access to an internal server) Charts and diagrams updated from live data Images and other content integrated into MiroOr is there some other solution?BR/Per
Hi!Is there a way to get only the boards grouped in a certain Project via the Rest API?
I’m wondering if anyone has tips on developing a Miro web-plugin with more than one developers? I’m currently the only one working on the plugin so every time I want to work on it, I edit the web-plugin URL on the app settings page to a URL that points to my localhost.This is ok for now, but will get cumbersome when we bring more people in. Wondering if anyone has tips or want to share how they develop their plugins locally? Thank you!
Hello,When a Board is created using boardsPicker with { allowCreateAnonymousBoards: true, action: "access-link"}… is there a way to obtain an accessToken to use with the REST API, to modify this anonymous Board?(Assuming the user is not logged into Miro, and is therefore created as a Guest Editor.) I imagine that if the user were logged in to Miro already, we would need to complete an OAuth2 flow to obtain permission to use and accessToken on their behalf. However if the user is anonymous, then presumably there is no downside to also returning a REST API accessToken along with the accessLink? My use case: allow unregistered users to create a Board, and then to programatically populate it with some content, and later to programatically read some content from it. I will also investigate another approach: programatically creating Boards within my own Team, and generating public editor links for those, and then using Live Embed to enable unregistered users to use them. However the boardP
Looking for some guidance. I am on an internship and have been asked to look into a way Miro can add flow diagram projects from Overflow. What i want to do is to add projects from Overflow as you would do with the already available plugin for Adobe XD. The idea is to provide collaboration on Overflow projects. Any assistance to point me in the right direction will be greatly appreciated.
I wan to show a custom message bar on top of all the board across my team. I can push a message on the board through web plugin using showNotification() method but if I use method, the notification disappears after few seconds.I want to ensure this message never disappears from the board and every time user open the board, this message is visible. What's the best way of achieving this.
Hi, I am working on integrating Miro to our web app, it has been said, we need to send our client ID to Miro to get approval, Please guide me through to which mail id, should this be sent ThanksUmapathy
Hello everyone, this is the same StickerMan team. Recently, we thought, but Miro is used not only by designers, managers of large and small companies. A large whiteboard on the Internet brings together many people with different professions, from a designer of a big company to one person working as a freelancer. We met a person who uses the whiteboard. She works as a foreign language tutor; with the help of Miro, she conducts her classes remotely. Such lessons are quite interactive and exciting. After a short interview, we identified some wishes that would help teachers and tutors organize lessons. For example, the function of hiding information on a sticker or shape, the teacher can hide some information up to a certain point (a hint, an answer, maybe even something in the form of a surprise). In such classes, they are now trying to hide information by covering them with stickers or removing them somewhere far away. Our solution will facilitate their work.Hidden information on sticke
Hello,New problem with plugin authorization, we are using token authentication to get around the webplugin problem with the new method.The plugin constantly asks to be authorised, and the error below appears every time it loads.But a bigger problem, any action done in the APP Manager results in an error :The problem persists since yesterday, do you have any idea of how to fix it? Thank you,Regards,
Hi!I created an app and I’m trying to set the Web-plugin url but I’m getting the error “Bad request. Deserialization Error”. I tried changing the url to the one used by one app that is live now and I get the same. If I go back and open the app again the URL is saved but when I try to use the app in a board it’s not loading.Does someone have this issue or can help please?Thanks
I am trying to integrate miro in my react app. And I am currently facing these errors,“SDK Loaded” message is being printed on the console, but miro.onReady() function is not getting called. And if I try to call miro.isAuthorized() or miro.requestAuthorization(), then it’s showing me error (“is not a funtion” for both), even if “miro” as a variable is defined. From one conversation in the community, I found that we can put the ReactDOM.render function inside the miro.onReady function, but now even “SDK Loaded” is not being printed, and React app is also not being rendered.
I beleive I am getting the above error because I am not authorizing the app to work with the Miro REST API. However, I am not sure how to do this as I was confused by the documentation on the website. I would appreciate any advice to go about fixing this.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.