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:
- 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
- Once the app is registered you will see your clientID and tenantID. Ýou will need these later, so make a copy of them.
- Navigate to the certificates and secrets tab and create a new secretID. Save the value of your new secret.
- 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
- 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).
- 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.
- 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.
- Create a new credential in the Crosser Cloud Platform. Select type: OAuth Authorization Code Grant.
- Enter "{refresh_token}" in the Refresh Token field.
- Enter your ClientID and ClientSecret in their respective fields.
- 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.
- 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
- Choose Action POST.
- Choose Content-Type: application/x-www-form-urlencoded
- 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}
- Click on Execute to run your request and make sure you get a status of 200.
- Exit the request popup.
- Press Test Credentials and make sure you get a status 200.
- Press Add Credential