At the end of July, we will make the following changes to the beta endpoint. APIs on the v1.0 endpoint are not affected. Changes include:
- Different permissions for app installations for a user – To improve security by running with least privilege, we have created new permission scopes for /users/{id}/teamwork/installedApps, and are dropping support for overly broad permissions. See below for details.
- Removing redundant data from code snippets inside chatMessages – In order to simplify the developer experience and reduce payload size, we are removing some unused properties from code snippets. See below for details.
Different permissions for /users/{id}/teamwork/installedApps
We are removing support for User.Read.All, User.ReadWrite.All, Directory.Read.All, and Directory.ReadWrite.All permissions from these APIs:
| GET | /users/{id}/teamwork/installedApps |
| POST | /users/{id}/teamwork/installedApps |
| DELETE | /users/{id}/teamwork/installedApps/{id} |
| POST | /users/{id}/teamwork/installedApps/{id}/upgrade |
Instead, use one of these permissions:
- TeamsAppInstallation.ReadForUser (delegated)
- TeamsAppInstallation.ReadWriteForUser (delegated)
- TeamsAppInstallation.ReadForUser.All (application)
- TeamsAppInstallation.ReadWriteForUser.All (application)
Removing redundant data from code snippets inside chatMessages
Some chatMessages have code snippet cards inside them, embedded in the content property of an attachment. That content itself has a bunch of properties, we are removing some properties that are redundant.
For example, GET /teams/{id}/channels/{id}/messages/{id} returns something like this, we are simplifying the bolded part:
{“@odata.context”: “https://graph.microsoft.com/beta/$metadata#teams(‘bdb7bcda-9c3b-4341-b9a9-f52bf9a23407’)/channels(‘19%3A786524f437c042b68bac5c0511ad6be2%40thread.skype’)/messages/$entity”,“id”: “1584126765017”,“replyToId”: null,“etag”: “1584126765017”,“messageType”: “message”,“createdDateTime”: “2020-03-13T19:12:45.017Z”,“lastModifiedDateTime”: null,“deletedDateTime”: null,“subject”: null,“summary”: null,“importance”: “normal”,“locale”: “en-us”,“webUrl”: “https://teams.microsoft.com/l/message/19%3A786524f437c042b68bac5c0511ad6be2%40thread.skype/1584126765017?groupId=bdb7bcda-9c3b-4341-b9a9-f52bf9a23407&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47&createdTime=1584126765017&parentMessageId=1584126765017”,“policyViolation”: null,“from”: {“application”: null,“device”: null,“conversation”: null,“user”: {“id”: “…”,“displayName”: “…”,“userIdentityType”: “aadUser”}},“body”: {“contentType”: “html”,“content”: “<div><div>Test</div>\n\n<div> </div>\n\n<div><attachment id=\”8c984810e000471c80fe624a2755444f\”></attachment></div>\n</div>”},“attachments”: [{“id”: “8c984810e000471c80fe624a2755444f”,“contentType”: “application/vnd.microsoft.card.codesnippet”,“contentUrl”: null,“content”: “{\r\n \”observers\”: [],\r\n \”type\”: \”application/vnd.microsoft.card.codesnippet\”,\r\n \”cardButtons\”: [],\r\n \”tapButton\”: null,\r\n \”cardSender\”: null,\r\n \”replyChainId\”: \”\”,\r\n \”conversationId\”: \”\”,\r\n \”alwaysExpand\”: false,\r\n \”viewOnly\”: false,\r\n \”clientMessageId\”: \”\”,\r\n \”serverMessageId\”: \”\”,\r\n \”messageType\”: \”\”,\r\n \”isInputExtension\”: false,\r\n \”hasMentions\”: false,\r\n \”handler\”: \”codeSnippetDialog_496bb293-6fa6-42c3-a2d8-521fcbd8afff\”,\r\n \”editable\”: true,\r\n \”id\”: \”8c984810e000471c80fe624a2755444f\”,\r\n \”name\”: \”\”,\r\n \”language\”: \”Text\”,\r\n \”lines\”: 1,\r\n \”cardClientId\”: \”8c984810e000471c80fe624a2755444f\”,\r\n \”wrap\”: false,\r\n \”codeSnippetUrl\”: \”https://graph.microsoft.com/beta/teams/bdb7bcda-9c3b-4341-b9a9-f52bf9a23407/channels/19:786524f437c042b68bac5c0511ad6be2@thread.skype/messages/1584126765017/hostedContents/aWQ9MC1jdXMtZDEtOGM4MzUzZjkzNjkxNTc2ZjRmMjJlZTRmYTFlMDA3OTYsdHlwZT0wLHVybD0=/$value\”\r\n}”,“name”: null,“thumbnailUrl”: null}],“mentions”: [],“reactions”: []}
Here’s what that bolded part looks like today when reformatted to be readable:
{“name”: “”,“language”: “Text”,“lines”: 8,“wrap”: false,“codeSnippetUrl”: “https://graph.microsoft.com/beta/chats/19:07ad17ad-ada5-4f1f-a650-7a963886a8a7_2de87aaf-844d-4def-9dee-2c317f0be1b3@unq.gbl.spaces/messages/1583878505774/hostedContents/aWQ9MC1jdXMtZDQtMmY0MTY0MmYwZmE1NGQ0MmYxMWY4Mjc3ZTk3NjA0YzAsdHlwZT0wLHVybD0=/$value” ,“observers”: [], // going away
“type”: “application/vnd.microsoft.card.codesnippet”, // going away“cardButtons”: [], // going away“tapButton”: null, // going away“cardSender”: null, // going away“replyChainId”: “”, // going away“conversationId”: “”, // going away“alwaysExpand”: false, // going away“viewOnly”: false, // going away“clientMessageId”: “”, // going away“serverMessageId”: “”, // going away“messageType”: “”, // going away“isInputExtension”: false, // going away“hasMentions”: false, // going away“handler”: “codeSnippetDialog_c4f35431-2b9b-4158-aef4-b377bdc82357”, // going away“editable”: true, // going away“id”: “ddd76144c464484ba8c1f42975cfe1ac”, // going away“cardClientId”: “ddd76144c464484ba8c1f42975cfe1ac” // going away}
Here’s what it will look like after we remove the redundant fields:
{
“name”: “”,
“language”: “Text”,
“lines”: 8,
“wrap”: false,
“codeSnippetUrl”: “https://graph.microsoft.com/beta/chats/19:07ad17ad-ada5-4f1f-a650-7a963886a8a7_2de87aaf-844d-4def-9dee-2c317f0be1b3@unq.gbl.spaces/messages/1583878505774/hostedContents/aWQ9MC1jdXMtZDQtMmY0MTY0MmYwZmE1NGQ0MmYxMWY4Mjc3ZTk3NjA0YzAsdHlwZT0wLHVybD0=/$value”
}
Tell us what you think
We welcome your feedback. If you have further questions, you can reach out to us on StackOverflow.
-Microsoft Teams