Stride API change log / known issues


#1

Latest updates. For previous updates, see the comments below.

Recent changes

Stride Node client library

By popular request, we’ve published a node library for the Stride API: https://www.npmjs.com/package/stride-api-client

The Stride reference app in Node now makes use of it too.

Deep linking to a Stride room

You can now redirect users from a 3rd party app to a Stride room using a link with the following format:

https://applink.atlassian.com/stride/{cloudId}/chat/{conversationId}

This will redirect the user to a page giving them the option to open links like this in the Web or Desktop/Mobile Stride client:

Inviting a user to a public or private room

We’ve added an API endpoint so your app can invite users to a public or private room without having to mention them.

https://developer.atlassian.com/cloud/stride/rest/#api-site-cloudId-conversation-conversationId-roster-patch

To try it out:

curl 
--request PATCH \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \ 
--data ' { "add": [ "user-id-1", "user-id-2" ] }' \ 
--url 'https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/roster'

Fixed bugs

We’ve fixed a number of bugs with the Stride button, which lets you add a button to a third party website taking the user to the installation of the app in Stride. This feature should now work as expected, and we apologize for the trouble!
image


#2

#3

Update: the following 2 issues were fixed:


#4

Previous update:

  • [Fixed] STRIDE-960: apps now have permission to access conversations they have created. they can send messages to these conversations, get/update conversation details, etc.
  • [Fixed] STRIDE-963: users can now initiate direct conversations with a bot.
  • [Fixed]: Apps and room tokens can now only access conversations they are installed in.
  • [New feature]: Application cards can now include actions (shown as buttons). These actions can open a dialog, open a sidebar, or call a back-end service. Application card actions are not in the documentation yet but you can find examples in the refapp
  • [Breaking change]: as announced, we changed the way permissions work for the “get conversation list for site” endpoint - it now only returns conversations the app has access to (is installed in). If you’re planning to use it for other purposes, please get in touch via strideapi@atlassian.com and we’ll discuss a plan.
  • [Breaking change]: apps could previously currently listen to messages from other apps. While we believe there are many scenarios where this adds a lot of value, we haven’t yet been able to sandbox it properly (avoiding infinite loops, etc.) so we’ve disabled it while we work out a better solution. We didn’t find any app making use of this feature. If you were planning to use it, please get in touch via strideapi@atlassian.com and we’ll discuss a plan.
  • [New feature] Application card actions: when a user clicks on an application card action which calls a back-end service, Stride shows a loading state for the button. The app can return a transient response message, which replaces the buttons on the card
  • **[New feature]**Action mark in the Atlassian Document Format: apps can send messages with links, these links can trigger an action - open a dialog or sidebar.

#5

[New feature] STRIDE-1512 Message editing API: apps can update a message they’ve previously sent. Which means you can now do this:

Jan-09-2018 13-32-51


#6
  • Fixed STRIDE-965 An app can now initiate a direct conversation with a user. The issue was that the app needed to be installed so the app could access the conversation.

To resolve this we introduced a new endpoint (GET /site/{siteId}/conversation/user/{userId} which installs the app and returns the conversationId.

To send a direct message to a user, you must first call this endpoint (it’s only required once per site and per user, however you can call it every time, it’s idempotent).

You can then either use POST /site/{siteId}/conversation/user/{userId}/message or /site/{siteId}/conversation/{conversationId}/message to send the message


Getting access token
#7

Previous update:

Recent changes

  • Fixed STRIDE-965 An app can now initiate a direct conversation with a user. The issue was that the app needed to be installed so the app could access the conversation.

To resolve this we introduced a new endpoint (GET /site/{siteId}/conversation/user/{userId} which installs the app and returns the conversationId.

To send a direct message to a user, you must first call this endpoint (it’s only required once per site and per user, however you can call it every time, it’s idempotent).

You can then either use POST /site/{siteId}/conversation/user/{userId}/message or /site/{siteId}/conversation/{conversationId}/message to send the message

  • [New feature] STRIDE-1512 Message editing API: apps can update a message they’ve previously sent. Which means you can now do this:
    Jan-09-2018 13-32-51

  • We’ve added an endpoint that lets you convert Markdown to Atlassian Document Format, and added an example to the refapp. Details:

URL: https://api.atlassian.com/pf-editor-service/convert?from=markdown&to=adf
content-type: application/json
body: {input: "some **markdown**"}
  • Errors should now be much easier to read when messages fail validation with the Atlassian Document Format (we’ve changed it from JSON schema validation to human-readable errors :slight_smile:)
  • Apps now have permission to access conversations they have created.
  • Users can now initiate direct conversations with a bot.
  • Application cards can now include actions (shown as buttons)
  • [Fixed] scopes are now added by default when you add a new API via developer.atlassian.com/apps

Coming soon

  • [New feature] STRIDE-952 Apps can send actions/buttons inline in messages

Known issues

  • STRIDE-957 in some rare cases, apps cannot send messages the first time they are installed in a site. Temporary workaround: do not send a message during the processing of installation callback

#8

Inline actions

  • Inline message actions: you can send messages that contain buttons. These buttons can trigger actions client-side, or server-side. The documentation should go live tomorrow, in the meantime you can find examples in the Stride reference app
    ADF - inline action

  • Inline select: you can also include selects in messages. Actions get triggered when a user changes the selected value. The documentation should go live tomorrow, in the meantime you can find examples in the Stride reference app:

Here’s what you can do when these actions are triggered:

  • Open an app dialog
  • Open an app sidebar
  • Open the app’s configuration page
  • Open an external page
  • Navigate to other parts of Stride, e.g. redirect the user to another room, open the room files and links or highlights
  • Call a service from your app (POST) which can in turn edit the original message or just provide a transient response to the user clicking the action.

Bonus: the service can also specify another action to invoke as part of the response. For example, you can do the following:

  • App sends a message with a button “create a room”
  • User clicks on “create a room”
  • Stride calls the REST endpoint for the service you specify
  • The service creates a room with Stride using the createRoom API
  • The service edits the original message to replace “create a room” with “join room”, which opens the room if a user clicks on it
  • The service sends a 200 response with, in the response, an instruction to redirect the user who clicked the button to the newly created conversation
  • The user who clicked the button is automatically redirected. Other users can click on the “join room” button

Markdown

Coming soon


GET /site endpoint requires 3LO token?
#9

We implemented rate limiting on the Stride API today. See “Stride API Rate Limiting in Place” for more information and to ask questions.


Is Media node with type “link” is possible or not?
Getting a Conversation List with the API