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
Hi, In sharing a web plugin with a team, do we need to “wrap” Miro REST calls on our application server (e.g. within a Node.js server), sending the authorization in the header for each service call? Or can our plugin code remain as it is? Currently, our test plugin makes use of code like this, using the Miro API that gets loaded automatically in the context of the plugin: miro.board.widgets.create() Without OAuth, this works for the user who created and installed the plugin. However, though other team members can invoke the plugin, they don’t have the authorization for this command to work. Basically, I’m wondering whether, for “web plugins” specifically, the OAuth flow is meant for a one-time installation by each team member, or whether the authentication has to be managed for each user every time they are using the plugin and/or whenever a specific Miro API is called. Thanks, Sheldon
Hi everyone! How i can add an application icon to the widgetContextMenu? By looking at the documentation, i tried the following code: miro.onReady(() => { miro.initialize({ extensionPoints: { widgetContextMenu: { title: 'Hi', svgIcon: "<circle cx=\"12\" cy=\"12\" r=\"9\"></circle>", } } })}) but in console i get the following error However, I can do it in bottomBar if I replace “widgetContextMenu” with “BottomBar”.
Hi! I would like to be able to add items, that have a certain functionality and would need a special rendering, like having dice represented on the board or playingcards, that can be flipped, or an avatar with a hands up indicator. Is there a way to do that? The normal API options do not allow for something like this. Thanks Falk
I have noticed something strange: I created a Sticky Note and wanted to wrap the words into two lines. As I clicked enter it shows me this: I have seen this only one time before but I cannot remember how I could reproduce it. Any solution? Michael
Hello, ich have a problem with my first Miro Plugin. Attached a video that shows the issue: https://storyxpress.co/video/k8shzojjkpud07w0c Thanks for your help BR Roman
Hi, I had a simple plugin up and running that executed a function when I clicked a new icon in the bottomBar. I used some of the example code to get up it set up and everything worked ok. Now the icon no longer appears in the bar. The browser tools show that there is an error message (before the plugin is loaded though) that says: XML Parsing Error: prefix not bound to a namespace. I am not sure if this error message is new or not. Has something changed that means the the button-display code needs to change? The relevant plugin code is: miro.onReady(() => { miro.initialize({ extensionPoints: { bottomBar: { title: 'Post-it Counter', svgIcon: '<circle cx="12" cy="12" r="9" fill="none" fill-rule="evenodd" stroke="currentColor" stroke-width="2"/>', onClick: async () => {...} updateCount(); } } })})
We show in our app a button that allows users to link their Miro profile to our app. Once authorized (via OAuth flow) we deactivate the button, so users understand that Miro is linked. Yet, if the user deauthorizes our app within Miro, we don’t know about it - i.e. our app shows the wrong information. It would be great if you could add a webhook to inform when the user deauthorizes our app. See for inspiration Zoom: https://marketplace.zoom.us/docs/guides/auth/deauthorization
When users are asked to authorize our app to access Miro (OAuth), Miro shows a generic logo on the page. How can we change this to our company logo?
Right now, the Miro access tokens are bound to a specific user and a specific team. This requires users to authorize our app multiple times with Miro (for each team). Our users found this pretty counter-intuitive. Their expectations are set by Zoom/Slack/Github which asks users during their default OAuth flow only once to connect the account. It would therefore be easier to if Miro OAuth access tokens could work across teams (and the API requires the team_id as a parameter when e.g. creating a board).
Today, the api doesn’t allow to set the borderColor to “transparent”. Not setting any value, Miro defaults the border to black. We figured out that setting the borderOpacity to 0 is a possible workaround. Yet, this isn’t ideal because getWidgets doesn’t do this if users create transparent borders in the Miro UI (i.e. input and output API aren’t consistent). It would be great if you would allow API developers to set the border color to transparent.
The API allows to use the following colors for widgets (every other color is rejected): #F5F6F8, #FFF9B1, #F5D128, #D0E17A, #D5F692, #A6CCF5, #67C6C0, #23BFE7, #FF9D48, #EA94BB, #F16C7F, #B384BB Yet, the Miro UI itself supports a different set of colors: #fef445, #fac710, #e6e6e6, #f24726, … This confuses users of API generated widgets because they can’t reproduce the same ones in the UI.
Regarding the docu (https://developers.miro.com/reference#authorization-and-authentication), the endpoint to trigger the oauth flow is “https://miro.com/oauth/authorize” whereas the code exchange endpoint is “https://api.miro.com/v1/oauth/token”. The API calls itself are as well “https://api.miro.com/v1/boards/id”. This is unexpected and not overly nice when writing integration code. It would be better if you the /authorize endpoint would be consistent => https://api.miro.com/v1/oauth/authorize
The Miro OAuth flows shows a page on which the user can select the team to which Miro should be installed. Afterwards, the code (and subsequently the access_token) is provided. Yet, the flow can be only executed once because the “Installed” button isn’t clickable. This means, in case the application looses the Miro access-token (which I understand from the docu should be cached forever), the user is required to deinstalled the application from Miro and then trigger again the OAuth flow.
How does the positioning system in the RESTAPI work? What I understood so far is that x/y coordinates define the middle point of the widget and that the values seem to correspond to display pixels. In particular: which x/y coordinates and width/height is advised to use when placing widget (assumption: all team members have different devices)?
Internal hackathons are huge for Miro product culture. We organize them twice a year for two days and last month 20 teams were competing for the main prize for the 7th time in history. I just wanted to share some pictures from this internal event and give a sneak peek into the projects teams were working on. For example, one of the teams called ‘Dotmocracy’ created a platform app for voting with a predefined amount of dots per user. Other projects include enhanced board history, plugin that allows to automate routine tasks on the board, and even custom Miro Instagram masks and stickers. I’m curious – if you were to participate in Miro Hackathon, what would you build?
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.