Skip to main content Skip to footer

Search Crosser Knowledge Base

Microsoft Teams Modules

Modules Covered

  • Microsoft Teams List Chats
  • Microsoft Teams Send Chat

These modules can be used to send chat messages to Microsoft Teams. When sending chat messages you need to reference the destination chat by providing its ID. If you are using Microsoft Teams from your browser, you can find the chat ID in the URL when you open the relevant conversation. The URL will look something like this: https://teams.live.com/_#/conversations/{CHAT-ID}?ctx=chat. If you are using the Teams app these IDs need to be fetched through the API. By using the List Chats module you can make an API request to list all chats you have access to and find their corresponding IDs. The Send Chat module can then be used to send messages to this chat.

Authentication

The Microsoft Teams modules use Oauth 2.0 for authentication and will access the API on behalf of a specific user. Instructions on how to create an Oauth 2.0 credential for this module is as follows:

  1. Firstly visit https://docs.microsoft.com/en-us/graph/auth-register-app-v2 and follow the guide on how to create an app in Microsoft AD. When registering your app, set your callback URL as https://www.crosser.io
  2. Once the app is registered you will see your clientID and tenantID. Ýou will need these later, so make a copy of them.
  3. Navigate to the certificates and secrets tab and create a new secretID. Save the value of your new secret.
  4. Now navigate to the API permissions tab. Click "Add a permission>Microsoft Graph>Delegated permissions". For these modules to work you need ChatMessage.Send, Chat.ReadWrite permissions.

Using your tenantID and ClientID you obtained from above and update the URL below. Remove line breaks when you enter it (it should all be one line):

https://login.microsoftonline.com/{YOUR_TENANT_ID}/oauth2/v2.0/authorize?  
client_id={YOUR_CLIENT_ID}
&response_type=code
&redirect_uri=https%3A%2F%2Fcloud%2Ecrosser%2Eio
&response_mode=query
&scope=offline_access%20ChatMessage.Send%20Chat.ReadWrite
&state=12345
  1. Ensure that your scope includes ChatMessage.Send, Chat.ReadWrite and offline_access. The state can be any value you like. Fill out the clientID and the tenantID (do not include the curly brackets in the final URL).
  2. Enter the full URL in an empty tab in your web browser and you will be redirected to a Microsoft authorization landing page. Follow the steps to authenticate your project.
  3. You will now be redirect to www.crosser.io. The redirect URL will look something like this:
    https://www.crosser.io/?code=YOUR_CODE&state=STATE&session_state=SESSION_STATE#/. Copy the code from the URL (starting after "code=" and up to the next "&"). The URL can usually be found at the top bar of most browsers.

At this point you should have your ClientID, ClientSecret and code. You can now create a credential in the Crosser Cloud platform.

  1. Create a new credential in the Crosser Cloud Platform. Select type: OAuth Authorization Code Grant.
  2. Enter "{refresh_token}" in the Refresh Token field.
  3. Enter your ClientID and ClientSecret in their respective fields.
  4. Enter https://login.microsoftonline.com/{TENANT-ID}/oauth2/v2.0/token as the Token Renewal URL. The scope field can be left empty. Remember to fill in your tenant ID in the URL.
  5. Create a request by clicking on the “+” sign above the settings. In the URL field, enter: https://login.microsoftonline.com/{TENANT-ID}/oauth2/v2.0/token
  6. Choose Action POST.
  7. Choose Content-Type: application/x-www-form-urlencoded
  8. In the Body, paste the following and replace "{YOUR CODE}" with the code you saved above. Remove line breaks when you enter it:
client_id={clientId}
&scope=offline_access%20ChatMessage.Send%20Chat.ReadWrite
&code={YOUR CODE}
&redirect_uri=https://www.crosser.io
&grant_type=authorization_code
&client_secret={clientSecret}
  1. Click on Execute to run your request and make sure you get a status of 200.
  2. Exit the request popup.
  3. Press Test Credentials and make sure you get a status 200.
  4. Press Add Credential

About the author

Goran Appelquist

Göran has 20 years experience in leading technology teams. He’s the lead architect of our end-to-end solution and is extremely focused in securing the lowest possible Total Cost of Ownership for our customers.

"Hidden Lifecycle (employee) cost can account for 5-10 times the purchase price of software. Our goal is to offer a solution that automates and removes most of the tasks that is costly over the lifecycle.

My career started in the academic world where I got a PhD in physics by researching large scale data acquisition systems for physics experiments, such as the LHC at CERN. After leaving academia I have been working in several tech startups in different management positions over the last 20 years.

In most of these positions I have stood with one foot in the R&D team and another in the product/business teams. My passion is learning new technologies, use it to develop innovative products and explain the solutions to end users, technical or non-technical."