Discuss everything related to Miro API, SDK, embedding and Miro Platform apps development.
Recently active
We use a bunch of boards as templates and my colluagues have gone wild with links within a board.When I duplicate a board or when I import it as a backup, all of those links still point to the original board.I tried editing the backup file and making the link `?movetoWidget=283917482397498324`, whicn in theory should work, but the app prepends `http://` and claims the link is invalid.I tried the API, but many oobjects that can contain links can't be updated. Even ones that are documented, like `shape`.My code: $goodboardId = "o9J_xxxxx"$badBoardId = "o9J_yyyyy"$goodBoard = "https://miro.com/app/board/o9J_xxxxx#61;"$badboard = "https://miro.com/app/board/o9J_yyyyyyy="$boardUri = "https://api.miro.com/v1/boards/$goodboardId"$headers = @{ Authorization = 'Bearer XXXXXXX'}$supportedTypes = @("Sticker", "Shape", "Text", "Line", "Card")$widgets = Invoke-RestMethod -Uri "$boardUri/widgets/" -Method GET -Headers $headers$widgets.data | ?{ $_.text } | %{ $originalText = $_.text
Hi Miro,It is possible to play (i.e. click the play icon) the embed widget pragmatically with the web-plugin JS SDK? If no, it would be a wish list feature for me 😊Cheers,Niklas
I would like to report a problem with access to the board I was using/developing.Somehow, the owner of the board is someone I don’t know. I don’t know that person and I don’t understand how it’s possible, that my content is not under my name. It’s a mess.Probably, this person had an empty board and I started creating my mind map there… I did not realize that was not the way to do it. I still don’t understand what just happened. I NEVER chose or agreed to follow the other boards either. I have no idea how and why they appeared on my list/dashboard. I have been trying to leave them, but there’s no such option. I want to leave all the boards except for one — that I have been working on for months. I currently technically cannot execute an upgrade for my account and I depend on the information that I have on my board. PLEASE, HELP! ASAP Thank you!
As per the documentation Image widgets metadata is not specified to be Read-only, but the miro.board.widgets.update method doesn’t update the metadata. At the same time it does allow the Title/URL properties to be updated.Documentation: https://developers.miro.com/docs/interface-iimagewidgetIs this a limitation of Image widget or is it a bug?
Hello, with my team we are considering to develop an API in order to do, remotely, some workshops that we used to do in-class. It is a bit unclear to me if it would be easy for the clients to use it and if guest editors could use it. Thank you, F
Hi!I’m trying to embed Miro’s board into our platform but we need to abstract about Miro’s session for each user.It’s posible to manage access tokens for team’s users from API and then embed the board by param, so the user has not to login into Miro manually before render the protected board within iframe. Thanks in advance.
Forgive me if something is not entirely clear, I am a Russian-speaking user.I want to know how can I implement a method to move an object up or down in layers?It's quite easy to do it on the board - just select an object, press the ellipsis - brintg to front or Sent to back.How can this be done through the API?Unfortunately I am not at all familiar with API Miro, but I have experience in this area, so I think I can get an authentication token and connect to my board. What's next?Can you provide links to the required documentation? (I work in Python)Thanks.
Hello! I was versed in the API by following this documentation:I was able to build my development team and my floating decal board. However, I noticed that you cannot go to your main profile (which I work on) and connect the API to it. In the settings of your profile, when creating your application, you can select only the team profile, but you cannot choose your own.What does it mean? Can't I use the API on my board?
Hi I was looking for a solution to de-select currently selected widgets on the whiteboard here https://developers.miro.com/docs/interface-iboardwidgetscommands but couldn’t find a solution. I’m using a widget attribute of clientVisible: false . After I overwrtite a widget with this attribute it becomes invisible on the whiteboard but still can be manipulated with as it stays selected hence even while in clientVisible : false state the user is able to move it around, I would like to perform a de-select method after the clientVisible change, so that the user would either have to make the widget visible again to move it around or not be able to move it while it is invisible
Hi,Not sure in which forum to put it.I just checked miro.d.ts for IBoardViewportCommands which I am using as single source of turth, but not all methods are listed there. Just fiddled in the console and on miro.board.viewport I get those methods listed:miro.board.viewport. methodsWhen using the methods getZoom, zoomToObject it shows deprecation warning, alltough this methods are also listed on the documentation example here https://developers.miro.com/docs/how-to-start. Would be cool to see in the console which method to use instead (eg. getZoom shows deprecated, but could mention to use getScale instead).And a general migration section in the docu would be cool.Markus
Hello, My client is hoping to create / remove miro users via spreadsheet. In order to acheive this, they need to create occasional users (day passes). I am aware that occasional users are company level accounts, however I do not see company level endpoints mentioned in the docs. I noticed that the webapp achieves this by making requests to the following endpoint: /api/v1/organizations/{organisationId}/members Although my calls to the same endpoint are returning 404’s. Consequently, my assumption is that this endpoint is not available for public consumption. Am I correct, and if so do you have any plans to open this up in the future? Thanks in advance, Oliver McPheely.
I am in the process of updating and testing an app which updates boards though the REST API. While doing this I’ve noticed a change in behaviour from the last time this app was used. Making a call to the ‘update widget’ (https://developers.miro.com/reference#update-board-widgets) endpoint results in a “connection restored” pop-up in a browser watching the board being updated. This behaviour is also reproduced using the ‘Try-it’ button in the API documentation, and has been seen with both Firefox and Chrome.This is a issue as it results in the board becoming temporarily unresponsive. This change appears to have happened in the last 3 months as it was working well the last time the app in question was tested.Any help or advice on how to fix or work around this behaviour would be greatly appreciated.If you would like more details please let me know.
Is any other option available for export the board in format of image using miro API?
I am working for a larger organization which has Domain SSO enabled for their users. We are working on building a custom app for Miro, but when I follow the instructions on the Getting Started page, and click the Get Dev Team to Create an App, I get an error that says: “Domain users are not allowed to create any accounts outside of their domain organization.” We have been building the tool in our own development project, but it’s now time to hand it over to the company and I don’t see how to add it in their organization’s settings. Our ‘API, SDK & Embed’ tab looks very different from theirs.Any help would be greatly appreciated.
Dear, I would like to set up a board with frames, one of them filled with a Kanban template. Did someone has done this before ? Thanks in advance for your help. Cheers Pierre
Hey guys, Miro is awesome, and to learn more awsomeness of miro I have been playing with miro SDK. I know how to create widgets like card, stickers, lines etc. I want to link one widget, lets say sticker A to some other shape in the same board. Visually, we can do this by selecting sticker A, then “ctrl + k” and selecting the target shape in the board. But I cant figure out how to do this using SDK. PS:- One alternative is to wrap the text of sticker A inside <a href="link to the board object here”>TEXT</a>. But this makes the text a hyperlink, not exactly what I want to accomplish.
Is there a integrated miro command or any other way to detect when a miro widget gets created on a board? And even more importantly can we access it’s id and other data immediately as it gets created? The only solution to this that comes to my mind is to gather all current miro board widget id’s and compare them in certain time intervals against new widget id’s whenever the time interval triggers. This solution seems really dirty and inefficient to me though so I’m trying to ask here first to find out if I could theoretically implement some sort of a event listener for miro widget creation
Hi, I’m trying to use bringForward() and sendBackward() Miro board functions which I found here: https://github.com/miroapp/app-examples/blob/master/miro.d.ts (line 351 - 357) I assumed this only needs the widget id’s in an array but when I tried with some test data it doesn’t actually change the widget “priority” AKA doesn’t send them forward or backwards. Tried something like this: `sendbackward(arrayOfWidgets)` where arrayOFWidgets were a few selected widgets from current boardIs there a specific use case that has to be done like with miro.board.commands , where they have to be in a miro on ready block? Or am I missing something else? Thanks for any suggestions
Hi all!How do I set up my plugin to have settings on the Apps&Integrations page? I would like to give the user some configuration options.Alternatively, I guess this can be done with a modal view (to configure) and a hidden widget (to store). Is that a good approach? Are there better ways to let the user configure a plugin?Thanks for your help :)
Has anyone else experienced an issue where the due date on your card does not match the “date” field when pulled from Miro? This is happening in about 50% of the cards I am pulling and for all of them the incorrect date is one day ahead of the correct assigned date. eg. if the due date is “Nov. 12” the output json from a Python Requests API pull will say “Nov. 13”. I have not noticed any correlation with when the cards were created or modified.
Heya,I am trying to use the REST API to automatically deprovision our users when a member leaves the team.I am using the Update Team User Connection endpoint to change a member’s role from ‘member’ to ‘non_team’. I’m doing this because it’s the best way to ensure a member’s boards aren’t deleted when their account is removed.When I try this with an account, I get a 500 error, both via Postman and the API reference page, with the message InternalError.After this happens, the user can no longer access the Team Boards at all. The web interface’s Users list still lists them as a Full member, and presumably they are still licensed as such.When using the API, the user is no longer listed under List All Team Members, and the Team User Connection ID will 404.Is this a bug that I'm running into, or am I doing something wrong here? Is there a better practice to deprovision users?Thanks for any help you can provide!
Hi there, I want to use Embed miro board.So, I implements frontend plugin referring below.https://developers.miro.com/docs/editable-boards-for-anonymous-users Then, I have a question.When we use miroBoardsPicker.open, what kind of values should be passed to getToken property?In the document, they say only we should generate jwt in server side.I want to knouw actual type of the property. Regards,
The METADATA_CHANGED event is still experimental, and it does not call the call back in my browser. How can I subscribe to it? having it is really useful.
Hi,I have tried a few ways to get the current user id, but I always encounter a error in one way or another. What is the most basic way to get a user id? So far I have mainly tried this: async function getUser() { const proxyurl = "https://cors-anywhere.herokuapp.com/" // getting cors error without this const url = "https://api.miro.com/v1/users/me" const options = { "method": "GET", "headers": { “Authorization”: `Bearer ${token}`, "Content-Type": "application/json" } } fetch(proxyurl + url, options) .then(response => { console.log(response) }) .catch(err => { console.error(err) }) }I’m currently getting error 401 “Not Authorized”I’ve seen a few discussions in here about a direct miro dot command that can get the user id but can’t find it anywhere in the documentation. Will be thankful for any suggestions as I ran out of ideas of what to
Is there a way to have a T&C pop up for guests to accept before they can view/interact with a board?
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.