We’re Giving Away a 1-Year Miro Business Plan to 3 r/Miro Members!
Discuss everything related to Miro API, SDK, embedding and Miro Platform apps development.
Recently active
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?
Hi,I’m using Miro REST API in the form of a sidebar, I’m trying to export data to a external database and would like to mark each dataset with its corresponding miro board ID from the board url like this one for example: https://miro. com/app/board/hereistheboardid/I’m trying to do this by calling window.location.pathname.split('/') from which I then obtain an array of paths in the link. Unfortunately the paths that I get returned back are ones from my server where I keep the code to my miro REST API Outlined in blue is my sidebar, from which the url path gets returned, but in the red there is underlined the actual window url / location which I believe it should return. Any ideas how to get the miro board URL via my REST API / webplugin?
I’m new to creating plugin for Miro. I have created a test plugin by follwing https://developers.miro.com/docs/how-to-start this & successfully added to my board. But how to modify/change my plugin after installation. When I change the code in index.js file of my web page which is hosted in the web plugin url, the plugin does not affect. It keeps un changed. How to update my plugin to affect changes.Thank you
I am writing a plugin that detects changes in a board (widget created, deleted, etc), and I want to take a screenshot of the change.The plugin can detect those changes, but I am stuck at the screenshot part. I have tried to integrate an iframe in the plugin but with no success. I want to ask you what ideas would you suggest?
Hi, I am trying to get widgets by id using the await miro.board.widgets.get({ id }) but it doesn’t appear to work? I have tried single ids, array of ids, both with strings and integers and nothing comes back? Is that expected behaviour? This is within the onReady callback; Thanks, Craig
Hi guys,I want to code a simple calculator to use inside the Miro environment.Since I am completely new to doing this in Miro: Do I need to build this functionality within my own HTML environment and embed this piece of code within Miro using something like an iframe? I can’t figure out if it’s always a ‘web plugin’ you’ll have to load from your own website/environment.If someone can explain me where to start, thanks a lot!All the best,Bob
Hi, I seem to be having an issue in getting the miro.board.widgets.create() promise to complete. The widgets are created but the returned promise never changes from “pending”. I have tried creating widgets one at a time and in batches but with no luck. As I say the widgets do create but without the promise completing or even erroring there is no way for my code to complete… it just hangs forever :( Anyone else has this issue? My code block is wrapped in the miro.onReady() callback so I don’t think i need to do anything else? Thanks.
Hi, I have trouble with embed from miro. I used this code in my website <iframe width="100%" height="400"src="https://miro.com/app/embed/o9J_kkXmwko=/?autoplay=yep" frameborder="0" scrolling="no" allowfullscreen=""></iframe> but I have an iframe like that : miro.com And i have a error on the the console :Uncaught ReferenceError: rtb is not defined at Object.p (embedEntry.23055cf40587a7dd6af2.js:2) at Object.O [as storeUserIds] (embedEntry.23055cf40587a7dd6af2.js:2) at t.apiHost (embedEntry.23055cf40587a7dd6af2.js:2) at G.apiHost (embedEntry.23055cf40587a7dd6af2.js:2) at Object.<anonymous> (embedEntry.23055cf40587a7dd6af2.js:2) at p (runtime~embedEntry.09c728ffbf645e3ac835.js:1) at Object.<anonymous> (embedEntry.23055cf40587a7dd6af2.js:2) at p (runtime~embedEntry.09c728ffbf645e3ac835.js:1) at Object.<anonymous> (embedEntry.23055cf40587a7dd6af2.js:2) at Object.<anonymous> (embedEntry.23055cf40587a7dd6af2.js:2) Thank for yo
What is the best way to get a list of all widgets on miro whiteboard. I would want something like “miro.board.widgets.get.all”. Used this for reference https://developers.miro.com/reference#get-board-widgets-1 Edit: deleted the original question, this ^ was pretty much it
Hi, I would like to get a Object of the whole, complete miro board. Found this article in documentation: https://developers.miro.com/reference#get-board But it doesn’t include any miro board command that can be used like with board widgets for instance which have something like this: miro.board.widgets.get()tried miro.board.get() but the feedback I get from console is that it is not a supported function, so the question would be if there is any integrated way of getting the whole board as an JSON object for the sake of “replicating” / “duplicating” the board contents on a new board for instance. Also, how should I go on about getting custom board objects like images to get them on a new board since I would like to get the exact copy of a already existing board which may include .jpg (or similar) files on it. Alternatively is there a different / better way to do a task like this? Thanks for any suggestions
Hi,Sorry if this is a trivial question or is at some point answered in the documentation. But I have been trying multiple ways of implementing these 2 methods and none seem to work right now. I’m trying to use this functionality in a miro board extension, the biggest problem is that my implementation worked on last friday, but when I tried to follow up on monday, I have this error every time: Uncaught TypeError: Cannot read property 'widgets' of undefinedMy attempts to use these methods:1)let allWidgets = miro.board.widgets.get()2)let AllWidgetsOnBoard = Promise.resolve(miro.board.widgets.get({ "type" : "SHAPE" })) //returns all widgets on board with shape type AllWidgetsOnBoard.then(function(v) { console.log("AllWidgetsOnBoard: ", AllWidgetsOnBoard) })3)let allWidgets = miro.board.widgets.get().then(function() { console.log("widgets on board: ", allWidgets) }) console.log("widgets on board: ", allWidgets)4) return miro.board.widgets.create({
Hi community. I want to develop an application that use card metadata.Unfortunately, I can add metadata to the card with JavaScript SDK, but I can’t get it with REST API.Do you know why? Reproduction procedure(0) Create Applicationhttps://developers.miro.com/docs/getting-started(1) Create a card with SDKawait miro.board.widgets.create({ type: "card", text: "test card", metadata: { [appId]: { hoge: true, }, }})(2) Get the card with REST APIcurl --request GET \ --url https://api.miro.com/v1/boards/${board_id}/widgets/${widget_id}\ --header 'authorization: Bearer ${token}'→ No metadata Thank you.
How to integrate miro apps with wordpress?
Hi, I’m working on a custom miro extension using javascript. It will function as a “layer” extension, something like photoshop uses to layer different edits on a photo. Miro board natively supports Bring to front and Send to back. I’m looking to apply this function to the whole layer, so for example if there were 10 widgets in a specific layer and a user brings that layer to front all widgets will be moved to front. I tried digging in miro board widget metadata but can’t find any attribute of a widget that represents bring to front or bring to back. In CSS this could be referred to as “z-index” of a object or element. Thanks for any help, alternatively is there any way to contact someone from the dev team and ask them?
Hi, I’m poking around the webapp- and rest-api in order to figure out if its possible to bridge Shotgun ↔ Miro for internal needs.Currently, everyting works fine with a localhost dev-server + self-signed SSL-certificates, drawer with images, javascript executing, the whole shebang. However, when trying to replicate the last part of the drag-and-drop demo and running the following code: miro.board.widgets.create({‘type’: ‘image’, url: “https://localhost.*”, x:x, y:y}) The board complains that I’ve put in the wrong address, but clicking the link in source takes me to the correct image. So I'm assuming that it looks from the ‘outside’ and therefor can’t see my dev-server. Since everything else has worked fine on local up till now I’m wondering if this can be rectified or if I’ve missed something? Running this on an internal server is an hard requirement, the service as a whole (miro) has been vetted as safe so a possible work-around would be to have them hosted by them, with the caveat th
I just want to ensure that I am using the community forum correctly. I tried to post a suggestion for a new feature for the REST API. I marked it as an idea, but then I couldn’t find my post under the developer platform forum. It went under an innovation section. Is that how I should have handled an API request?
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.