Discuss everything related to Miro API, SDK, embedding and Miro Platform apps development.
Recently active
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.
Hello,I'm having an issue when listening for the WIDGETS_TRANSFORMATION_UPDATED event.All widgets trigger this event on change (shapes, text, stickers, etc) except for the LINES.If you update a line alone, it does not trigger this event, however, if you update together a line and a shape, it does show the line on the data array.Example of the event working for a TEXT widget.
Hi, I’m referring to this command https://developers.miro.com/docs/interface-iboardwidgetscommands#section-update I’m currently using it with single id’s but since it says there is a option to call it with multiple id’s I’d like to utilize this, since I’m exepriencing board freeze / syncing with higher volumes of requests made to the API. I can’t see a example on how to utilize with for example a array of id’s. What I have been using so far:await miro.board.widgets.update({ "id" : widgetID2, "clientVisible" : false }) Tried replacing my widgetID2 variable with a array but the API returned “Wrong argument passed to miro.board.widgets.update(widgets: {id: string; [index: string]: any}[]).” I’m experiencing syncing times of up to 1 minute of the board when sending lets say 100 requests to the API to make 100 widgets invisible and want to prevent this ofcourse.
Hello, I am trying to programmatically populate a board with predefined shape widgets. N.B i can successfully create a frame widget, but not its children and attempting to separately render child widgets hasn’t worked for me either. Please see stack trace below, I suspect that the error is originating from the Miro Web Plugin SDK.Looking through the documentation, I can’t see a requirement for a ‘name’ property for a widget.. tested and adding a name property to the json object results in the same error.Please, Let me knowRegards, RTypeError: Cannot read property 'name' of undefined at Function.t.getName (Board.4b1e51e782d99f6d574d.js:2) at t.setFontSizeOfStyle (Board.4b1e51e782d99f6d574d.js:2) at n.setWidgetData (Board.4b1e51e782d99f6d574d.js:2) at n.setJsonData (Board.4b1e51e782d99f6d574d.js:2) at n.setData (Board.4b1e51e782d99f6d574d.js:2) at new n (Board.4b1e51e782d99f6d574d.js:2) at create (Board.4b1e51e782d99f6d574d.js:2) at Object.e.create (Board.4b1e51e7
I am trying to add a button to the context menu for widgets, here is the code: miro.onReady(async (): Promise<void> => { miro.initialize({ extensionPoints: { getWidgetMenuItems: (widgets) => { if (widgets[0]['type'] === 'CARD') return [{ tooltip: 'Estimate', svgIcon: '<circle cx="12" cy="12" r="9" fill="none" fill-rule="evenodd" stroke="currentColor" stroke-width="2"/>', onClick: async (widgets) => { await jiraCard() } }] } }, });})Unfortunately, this gives me the error TS2322: Type '(widgets: IWidget[]) => { tooltip: string; svgIcon: string; onClick: (widgets: any) => Promise<void>; }[] | undefined' is not assignable to type '(widgets: IWidget[], editMode: boolean) => Promise<IWi
Hi Miro Team,I was looking to create an app that will allow to create cards automatically from a CSV file. And looking at the API docs I saw that card got only these fields: title, desc, date, assignee. Can Tag field be added to a cardusing the API?
Hi, Is it possible to create image widget with data URL such as data:image/jpeg;base64,/9j/4…When I attempt to do so it throws error Error: 'url' field is required for ImageWidget Regards,Ram
Is there a way to restrict the widgets that getWidgetContextMenu applies to? I’m adding a new button, and I’d only like this button to show up for kanban.
Resolved.
Hi! Is there a way to find out, if a widget is in front of another widget? ThanksFalk
Right now Miro seems mostly about people starting things. I’m sure Miro has a frequency distribution showing how many boards people make. Over time, how many times they come back, factors driving repeat usage, tipping point between trying a few boards and being hooked on Miro, factors driving sharing and collaboration. IFTTM. I want to know about scale and how miro will help with scale. With APIs, other tools can generate boards. Like the manager who had more than a thousand pdfs for his team to annotate. People who meet could connect miro to calendaring and conferencing apps to trigger templated boards and automatically invite the right folks to contribute. Software developers might have a project’s issues not just added to a an existing kanban but start a scorecard board for each issue for a team to weigh in. There might be thousands of boards per worker, most generated automatically to lay the ground for further work. Overwhelm ahead. But nothing in the user experience suggests any
Hello, I am trying to add a custom icon to the menu for a given widget, this is the code for doing so:function jiraCard() { miro.board.ui.openModal('modal.html',{ width: 400, height: 600 }).then(() => { miro.showNotification("modal closed"); });}miro.onReady(() => { miro.initialize({ extensionPoints:{ getWidgetMenuItems: (widgets) => { return{ tooltip: 'Estimate', svgIcon: '<circle cx="12" cy="12" r="9" fill="none" fill-rule="evenodd" stroke="currentColor" stroke-width="2"/>', onClick: async (widgets) => { jiraCard() } } } } })})The problem is that this code makes all the default widgets disappear, so that the only button the menu is the custom widget that I am defining. Is there anyway to prevent this problem?
Hello, I am at the beginning of development project to populate Miro board using API. Checking API reference at https://developers.miro.com/reference I can’t find enough details for what I need.My requirements are:For a board <xxx>Create/update card widgetsI found Get Current User Boards API which returns all boards current user has access to. I can then loop through to find the board I need and start adding/updating cards.Card widget JSON does have tags field. Is there any way to add tags via API?Are there any examples of end-to-end similar functionality (including authentication)?
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.