Discuss everything related to Miro API, SDK, embedding and Miro Platform apps development.
Recently active
Is there any way to list all boards in a Miro team and the permissions associated with them? The use case is to create an external search index for Miro boards for the entire team without every user needing to authorize separately. This would require having an app integration at admin/team-scope (as opposed to user-scope).
Hi,I am using the REST API, not creating a Miro App. I am using the API to build a board programmatically and although it is mostly working, I have hit a number of issues.The API exploration works, but the code samples do not - something is broken on the OpenAPI Schema (missing fields) that prevents it from working, I’ve had to make calls directly instead. Changing lineEndType does not seem to do anything. backgroundOpacity does not match what is in the application - I would like 10%. There is no ability to “send to back” or in any way adjust the z-index. Would it be so hard to add z-index to the style? It is not possible to adjust the opacity of a line.
My usage:When user click the button in our app, I will create a board on Miro. I checked the document: Step1: we will get the code after we authorize with the redirect url, this authorize will be completed by the real end user, right?Step 2: we will get the access token by the code and return to our UI websiteStep 3: we can pass the token from UI to our API and then access the create request. (we need the user to authenticate our App also) My questions are:Do we need/have the system account to get the access token?If we want all of the authenticate and real create request get done in our backend, what I can do? Miro will redirect the code to our API, but with this call, there is no our app authenticate info, we cannot continue to request the other logic if no user authenticate info with our app.
I am trying to get image widget data in a web plugin. If i create an image widget by copying it from a web page, the url field is nicely set and i can use that information. If i create an image widget by copy/pasting e.g. a screenshot, the url field is empty and i can not access the image.Is there a way to access the image data with is stored within the Miro Board? Having access to the different resolutions of the image (which are probably cached in Miro) would be very interesting. Thank you very much,Sebastian
@Anthony Roux - Can you confirm the status of the bottomBar extension point and the new UI beta?For example, the following does not appear to work in the new UI: extensionPoints: { bottomBar: { title: "Cardsy", tooltip: "Generate Cards", svgIcon: icon,Source:https://github.com/YashBhalodi/cardsy/blob/master/main.jsFor one of my personal projects, I had to switch to the ‘toolbar’ extension point and replace ‘svgIcon’ with:toolbarSvgIcon: icon,librarySvgIcon: icon,Tagging in @Yash as his Cardsy plugin is work working in the new UI using the above bottomBar extension point.
Hi, I’m a Developer planning to use your Boards Picker API.Before I start integrating it into my App, I’d like to know the pricing of the API.I’m looking forward to hear your answer.
I’m running “npx create-miro-app@latest” but received this error: internal/modules/cjs/loader.js:905 throw err; ^Error: Cannot find module 'node:process' I’ve also tried with explicit versions @0.8.4 and @0.8.3 with the same error. When running “npx create-miro-app@0.8.2” the interactive menu works fine.I’m running npm version 8.3.0 and node version 14.17.2 Regards,JMB
Hello,I’m trying to lock lines drawn by a pen in a chart, but I found out, that this doesn’t work.I tried it with the same lines in and our of the chart. Here are Screenshots of the problem Thats quite troubeling because I’m trying to use miro as a plattform for the free japanese online class that I’m currently developing.Have a nice day ^^
I’m trying to emulate the request to get all widgets from the “List All Widgets - Try It” page locally. I have an index.js file that is linked in a html file. All the index.js contains is: const options = { method: 'GET', headers: { Accept: 'application/json', Authorization: 'Bearer <access token>' }};fetch('https://api.miro.com/v1/boards/<board id>%3D/widgets/?widgetType=sticker', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));But whenever I make the request all I get is TypeError: Failed to fetchWhat am I doing wrong here? Is the endpoint incorrect? Am I supposed to be adding additional fields to the options? I tried making a request through Postman using that endpoint and the access token that was provided when the app was made and the request works. I just don’t get what’s wrong with this fetch request :(
I was thinking of building a plug-in to do this (but not using the existing story widget - just creating something custom): https://community.miro.com/wish-list-32/user-story-mapping-feature-collapsible-rows-5526It would involveA story board wrapper - which could automatically stack the rows vertically Rows which could contain stickers and notes etc (could be frames) Shapes on each row that could act as buttons to toggle expanding them and collapsing them - as well as triggering the main wrapper to re align the rows verticallyCan I do this with the tools in the SDK?I got the Hello World app working, but I didn’t see an example of someone making a new widget - which I think I would need to do for point 2 above, or at least add an onClick listener to a shape - is that possible? Could I add something to the menu of a frame saying it is a story wrapper or a story row, and then something to the menu of a shape to designate it as an expand collapse toggle for the row it is in?
How can I view the feedback I've provided miro about their platform? I was reviewing my team’s work and mistakenly used the Feedback to Miro button which I have since learned s for sharing thoughts about the platform. I am now aware the proper way to capture my thoughts and feedback for my team. Is there anyway I can get the comments I sent to the platform developers back so I do not have remember all of my feedback and recreate them?
Hello.I have own personal miro and account that created on team mail. Once, I logged in desktop app (Win10x64) via personal google account. Then I remembered that my current work file located on team account. I thought that I can logout and open team mail account, but… Always when I choose login via Google I automatically login via personal email. So now, I can not to work with team files.
I'm developing a validation in tx MIRO through the BADI MRM_HEADER_CHECK, I show a message when the field "reference" has already been used. The message has type E, this disables every field on screen and so the user can't return to that field to fix its value.FYI: I have to show message type E because I want to block every fields excepts the two fields with encircled in red. I saw that the people suggestion use this: if I put the breakpoint SY-DINNR equals to 6000. In my BADI code LOOP AT SCREEN doesn't see field names that I want to disable. MESSAGE <msg> TYPE 'S' DISPLAY LIKE 'E' doesn't work as well I can't modify code that is out of my BADI code, e.g. in PAI and PBO modules:CHAIN. fields: f1,f2,f3. MODULE <mod name>.ENDCHAIN.This my BADI code:*This field symbol have the values of inputs.ASSIGN ('(SAPLMR1M)RBKPV') TO <fs_rbkpv>. IF <fs_rbkpv>-XBLNR = lwa_bkpf-xblnr. MESSAGE lc_message TYPE 'E'.ENDIF.Any ideas? Thanks in advance.
I spent whole night to try many ways to do the same thing, but I'm a beginner so I give up and ask for help.Question was answered many times but I can't find just simple way to make TOGGLE remember current state. I don't want to start my work with jQuery with bloated code.I need to create just dead simple open/close panel and I found toggle() or toggleClass() will give me what I'm want.Final working code from Miro shortened and fixed by me is:$(document).ready(function () { $('p').toggleClass('red', $.cookie('currentToggle') === 'on'); $('button').toggleClass('yellow', $.cookie('currentToggle') === 'on');});$("button").click(function () { $("p").toggleClass("red"); $(this).toggleClass("yellow"); $.cookie('currentToggle', $("p").hasClass('red') ? 'on' : 'off');});Thanks Miro!
I see that https://developers.miro.com/docs/interface-ipluginconfigextensionpoints#section-get-widget-menu-items is marked as deprecated, but I can't find any alternative way to extend the widget menu, nor can I find any announcement around it. What's the official story here? Is this going away completely, or is there an alternative on the way that hasn't been documented or communicated yet? Or am I blind 😛
unable to add columns with dates on yearly planners for our CP sessions
Hi Miro,Any chance I could get some assistance with deleting my App (empty project) and recreating a the Dev Team, so I can actually develop my application. Since I deleted the Dev team after I had created an app, the app is not “owned” by anyone and is unable to be deleted (See top of image attached, “Account not found”). What I need is a “clean” Dev Team so that I can create my application/integration for Miro. Thanks, Andreas | Cohere XR
Facing issue in line widget style key "lineEndType":"opaque_block" not working in WEB or REST API bodyoption --> {"type":"line","startWidget":{"id":"3074457367566661454"},"endWidget":{"id":"3074457367568133402"},"style":{"borderColor":"#009688","borderWidth":5,"lineStartType":"none","lineEndType":"opaque_block","lineType":"bezier"}}res.body --> { id: '3074457367566661461', startWidget: { id: '3074457367566661454' }, endWidget: { id: '3074457367568133402' }, style: { borderColor: '#009688', borderStyle: 'normal', borderWidth: 5, lineType: 'bezier' }, type: 'line', createdAt: '2021-11-14T08:20:38Z', modifiedAt: '2021-11-14T08:20:38Z', modifiedBy: { type: 'user', name: 'Pratik Suthar', id: '307490306307' }, createdBy: { type: 'user', name: 'Pratik Suthar', id: '30744573307' }, capabilities: { editable: true }}
Hi.As admin of the company, last Friday we distributed a very simple web plugin for one of our teams.The plugin is on an https url and the application was successfully created and several users were able to test it.The problem is that today when a user loads the boards, when trying to request authorization from the user a message appears with "Application not found".If I access the application with the "Dev team" and try to reinstall it, it tells me "Resource not found" "Something goes wrong"...However, if I access the https url where the plugin is hosted, it is accessible.What's happening? Where is our application?
Hello,I am developing a chatbot application to guide users through the process of data analysis.In this context, beside of the chatbot, I need a visualization tool that allows user to follow the different steps of data preprocessing and data analysis.My Idea was to use Miro for this visualization tool. Indeed, I could iteratively fill in the board with the information produced by the chatbot at each interaction. For example, when a user uploads a new dataset to the chatbot, I could add a shape containing some summary statistic about that dataset. Or, when a user asks what are the attributes of the dataset, I could add a shape containing the list of the attributes.I very much like that idea because it would provide a customizable visualization tool, where user can rearrange the widgets produced by the chatbot.The simplest way to achieve that is to use the Miro API. This way, I can send a call to generate a widget each time an operation is performed. However, I would like to have images
The Refresh token is expired after reinstalling app by Auth2. We have even not selected the option 'Expire user authorization token'. Just the latest access token is working and all the other previous tokens expired. How can this be fixed?
Hello, I would like to place a shape on the center of the current screen. So I slide a bit to the right click on my plugin and it creates it in the center of the scroll position. With miro.board.viewport.get() I seem to get the whole viewport with all screens, etc and it would position it wrong, even if I try to calculate it like that: const viewport = await miro.board.viewport.get(); const zoom = await miro.board.viewport.getScale(); const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) const vh = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0) calculated.centeredX = (vw * zoom) / 2 + viewport.x; calculated.centeredY = (vh * zoom) / 2 + viewport.y; console.log(calculated, viewport)My assumption is that viewport.x is the left position and viewport.y the top positon to of my current visible browser window. Then I read my browsers window height and width, half it to get the center and multiply it with th
Hello,I'm using your REST API Audit Log Endpoint to get what's the Role of each user in each board.I have an user: raaf@xxxx.com that is a Free Restricted Member and it is returning this object:{ "type": "event", "details": { "role": "EDITOR" }, "createdBy": { "type": "user", "id": 307XXX7360065256XXX, "name": “raaf”, "email": “raaf@xxxx.com” }, "object": { "id": "307XXX736776477XXX, "name": “Bola” }, "context": { "ip": "172.XX.324.73", "team": { "type": "team", "name": "Enterprise - Plan”, "id": "307445XXX3657872XXX” }, "organization": { "type": "organization", "name": “Bola”, "id": "307XXX363XXX872XXX" }
Hello,For a few weeks now, the Frames have not stored metadata when the board is reloaded. Is an update planned at this level, as we have several plugins that use this functionality?Thank you!
I am making a Learning Management System, E-learning platform. I need to embed a Miro board with some exercises for my users. I need to give them the possibility of editing the board and possibly save it on their computers. At the same time, I need the original Miro board to remain untouched for the other users that will access it. Is it possible?
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.