Updates from: 07/01/2021 03:11:45
Service Microsoft Docs article Related commit history on GitHub Change details
platform Create Apps For Teams Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md
export class MyBot extends TeamsActivityHandler {
GET /v1/meetings/{meetingId}/participants/{participantId}?tenantId={tenantId} ```
-* * *
+ The JSON response body for `GetParticipant` API is:
To use the Meeting Details API, you must obtain RSC permissions. Use the followi
] } ```-
+
#### Query parameter The Meeting Details API includes the following query parameter:
platform Device Capabilities Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/device-capabilities-overview.md
After getting access to device capabilities, use Teams media capability APIs to
* Scan QR or barcode using [scanner control](qr-barcode-scanner-capability.md). * Record audio through microphone. * Share location using [location picker](location-capability.md).+
+Also, you can integrate the Teams native [people picker control](people-picker-capability.md) that allows users to search and select people in the web app experience.
platform Location Capability https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/location-capability.md
description: How to use Teams JavaScript client SDK to leverage location capabil
keywords: location map capabilities native device permissions localization_priority: Normal-+ # Integrate location capabilities
-This document guides you on how to integrate the location capabilities of native device with your Teams app.
+You can integrate the location capabilities of native device with your Teams app.
You can use [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true), which provides the tools necessary for your app to access the userΓÇÖs [native device capabilities](native-device-permissions.md). Use the location APIs, such as [getLocation](/javascript/api/@microsoft/teams-js/microsoftteams.location?view=msteams-client-js-latest#getLocation_LocationProps___error__SdkError__location__Location_____void_&preserve-view=true) and [showLocation](/javascript/api/@microsoft/teams-js/microsoftteams.location?view=msteams-client-js-latest#showLocation_Location___error__SdkError__status__boolean_____void_&preserve-view=true) to integrate the capabilities within your app.
To integrate location capabilities, you must update the app manifest file and ca
It is important to familiarize yourself with the [API response errors](#error-handling) to handle the errors in your Teams app. > [!NOTE]
-> Currently, Microsoft Teams support for location capabilities is only available for mobile clients.
+> Currently, Microsoft Teams support for location capabilities is available for mobile clients only.
## Update manifest
-Update your Teams app [manifest.json](../../resources/schem#devicepermissions) file by adding the `devicePermissions` property and specifying `geolocation`. It allows your app to ask for requisite permissions from users before they start using the location capabilities.
+Update your Teams app [manifest.json](../../resources/schem#devicepermissions) file by adding the `devicePermissions` property and specifying `geolocation`. It allows your app to ask for requisite permissions from users before they start using the location capabilities. The update for app manifest is as follows:
``` json "devicePermissions": [
You must use the following set of APIs to enable your device's location capabili
> [!NOTE] > The `getLocation()` API comes along with following [input configurations](/javascript/api/@microsoft/teams-js/locationprops?view=msteams-client-js-latest&preserve-view=true), `allowChooseLocation` and `showMap`. <br/> If the value of `allowChooseLocation` is *true*, then the users can choose any location of their choice.<br/> If the value is *false*, then the users cannot change their current location.<br/> If the value of `showMap` is *false*, the current location is fetched without displaying the map. `showMap` is ignored if `allowChooseLocation` is set to *true*.
-**Web app experience for location capabilities**
-![web app experience for location capabilities](../../assets/images/tabs/location-capability.png)
-
-## Error handling
+The following image depicts web app experience of location capabilities:
-You must ensure to handle these errors appropriately in your Teams app. The following table lists the error codes and the conditions under which the errors are generated:
-
-|Error code | Error name | Condition|
-| | | -- |
-| **100** | NOT_SUPPORTED_ON_PLATFORM | API is not supported on the current platform.|
-| **500** | INTERNAL_ERROR | Internal error is encountered while performing the required operation.|
-| **1000** | PERMISSION_DENIED |User denied location permissions to the Teams App or the web-app .|
-| **4000** | INVALID_ARGUMENTS | API is invoked with wrong or insufficient mandatory arguments.|
-| **8000** | USER_ABORT |User cancelled the operation.|
-| **9000** | OLD_PLATFORM | User is on old platform build where implementation of the API is not present. Upgrading the build should resolve the issue.|
+![web app experience for location capabilities](../../assets/images/tabs/location-capability.png)
-## Code snippets
+### Code snippets
**Calling `getLocation` API to retrieve the location:**
microsoftTeams.location.showLocation(location, (err: microsoftTeams.SdkError, re
}); ```
+## Error handling
+
+You must ensure to handle these errors appropriately in your Teams app. The following table lists the error codes and the conditions under which the errors are generated:
+
+|Error code | Error name | Condition|
+| | | -- |
+| **100** | NOT_SUPPORTED_ON_PLATFORM | API is not supported on the current platform.|
+| **500** | INTERNAL_ERROR | Internal error is encountered while performing the required operation.|
+| **1000** | PERMISSION_DENIED |User denied location permissions to the Teams App or the web-app .|
+| **4000** | INVALID_ARGUMENTS | API is invoked with wrong or insufficient mandatory arguments.|
+| **8000** | USER_ABORT |User cancelled the operation.|
+| **9000** | OLD_PLATFORM | User is on old platform build where implementation of the API is not present. Upgrading the build should resolve the issue.|
+ ## See also * [Integrate media capabilities in Teams](mobile-camera-image-permissions.md) * [Integrate QR code or barcode scanner capability in Teams](qr-barcode-scanner-capability.md)
+* [Integrate People Picker capability in Teams](people-picker-capability.md)
platform Mobile Camera Image Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/mobile-camera-image-permissions.md
# Integrate media capabilities
-This document guides you on how to integrate media capabilities. This integration combines the native device capabilities, such as the **camera** and **microphone** with the Teams platform.
-
-You can use [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true), that provides the tools necessary for your app to access a userΓÇÖs [device permissions](native-device-permissions.md). Use suitable media capability APIs to integrate the native device capabilities, such as the **camera** and **microphone** with the Teams platform within your Microsoft Teams mobile app, and build a richer experience.
+You can integrate native device capabilities, such as the **camera** and **microphone** with your Teams app. For integration, you can use [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true), that provides the tools necessary for your app to access a userΓÇÖs [device permissions](native-device-permissions.md). Use suitable media capability APIs to integrate the device capabilities, such as **camera** and **microphone** with the Teams platform within your Microsoft Teams mobile app, and build a richer experience.
## Advantage of integrating media capabilities
For effective integration, you must have a good understanding of [code snippets]
It is important to familiarize yourself with the [API response errors](#error-handling) to handle the errors in your Teams app. > [!NOTE]
-> * Currently, Microsoft Teams support for media capabilities is only available for mobile clients.
-> * Currently, Teams does not support device permissions for multi window apps, tabs, and the meeting sidepanel.
+> * Currently, Microsoft Teams support for media capabilities is available for mobile clients only.
+> * Currently, Teams does not support device permissions for multi window apps, tabs, and the meeting sidepanel.
## Update manifest
-Update your Teams app [manifest.json](../../resources/schem#devicepermissions) file by adding the `devicePermissions` property and specifying `media`. It allows your app to ask for requisite permissions from users before they start using the **camera** to capture the image, open the gallery to select an image to submit as an attachment, or use the **microphone** to record the conversation.
+Update your Teams app [manifest.json](../../resources/schem#devicepermissions) file by adding the `devicePermissions` property and specifying `media`. It allows your app to ask for requisite permissions from users before they start using the **camera** to capture the image, open the gallery to select an image to submit as an attachment, or use the **microphone** to record the conversation. The update for app manifest is as follows:
``` json "devicePermissions": [
You must use the following set of APIs to enable your device's media capabilitie
| [**getMedia**](/javascript/api/@microsoft/teams-js/microsoftteams.media.mediachunk?view=msteams-client-js-latest&preserve-view=true)| This API retrieves the media captured by `selectMedia` API in chunks, irrespective of the media size. These chunks are assembled and sent back to the web app as a file or blob. Breaking of media into smaller chunks facilitates large file transfer. | | [**viewImages**](/javascript/api/@microsoft/teams-js/microsoftteams.media.imageuri?view=msteams-client-js-latest&preserve-view=true)| This API enables the user to view images in full-screen mode as a scrollable list.|
+The following image depicts web app experience of `selectMedia` API for image capability:
-**Web app experience for selectMedia API for image capability**
![device camera and image experience in Teams](../../assets/images/tabs/image-capability.png)
-**Web app experience for selectMedia API for microphone capability**
+The following image depicts web app experience of `selectMedia` API for microphone capability:
+ ![web app experience for microphone capability](../../assets/images/tabs/microphone-capability.png) ## Error handling You must ensure to handle these errors appropriately in your Teams app. The following table lists the error codes and the conditions under which the errors are generated: - |Error code | Error name | Condition| | | | -- | | **100** | NOT_SUPPORTED_ON_PLATFORM | API is not supported on the current platform.| | **404** | FILE_NOT_FOUND | File specified is not found in the given location.| | **500** | INTERNAL_ERROR | Internal error is encountered while performing the required operation.| | **1000** | PERMISSION_DENIED |Permission is denied by the user.|
-| **2000** |NETWORK_ERROR | Network issue.|
| **3000** | NO_HW_SUPPORT | Underlying hardware does not support the capability.| | **4000**| INVALID_ARGUMENTS | One or more arguments are invalid.|
-| **5000** | UNAUTHORIZED_USER_OPERATION | User is not authorized to complete this operation.|
-| **6000** |INSUFFICIENT_RESOURCES | Operation could not be completed due to insufficient resources.|
-|**7000** | THROTTLE | Platform throttled the request as the API was invoked frequently.|
| **8000** | USER_ABORT |User aborts the operation.| | **9000**| OLD_PLATFORM | Platform code is outdated and does not implement this API.| | **10000**| SIZE_EXCEEDED | Return value is too big and has exceeded the platform size boundaries.|
microsoftTeams.media.selectMedia(mediaInput, (error: microsoftTeams.SdkError, at
* [Integrate QR or barcode scanner capability in Teams](qr-barcode-scanner-capability.md) * [Integrate location capabilities in Teams](location-capability.md)
+* [Integrate People Picker capability in Teams](people-picker-capability.md)
+
platform Native Device Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/native-device-permissions.md
You can enrich your Teams app with native device capabilities, such as camera, m
> * To integrate media capabilities within your Microsoft Teams mobile app, see [Integrate media capabilities](mobile-camera-image-permissions.md). > * To integrate QR or barcode scanner capability within your Microsoft Teams mobile app, see [Integrate QR or barcode scanner capability in Teams](qr-barcode-scanner-capability.md). > * To integrate location capabilities within your Microsoft Teams mobile app, see [Integrate location capabilities](location-capability.md).
+> * To integrate People Picker capability within your Microsoft Teams mobile app, see [Integrate People Picker capability in Teams](people-picker-capability.md).
## Native device permissions
A user can manage device permissions in Teams settings by selecting **Allow** or
## Specify permissions
-Update your app's `manifest.json` by adding `devicePermissions` and specifying which of the five properties that you use in your application:
+Update your app's `manifest.json` by adding `devicePermissions` and specifying which of the following five properties that you use in your application:
``` json "devicePermissions": [
Device permissions are stored for every login session. It means that if you sign
> [!div class="nextstepaction"] > [Integrate location capabilities in Teams](location-capability.md)+
+> [!div class="nextstepaction"]
+> [Integrate People Picker capability in Teams](people-picker-capability.md)
platform People Picker Capability https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/people-picker-capability.md
+
+ Title: Integrate People Picker capability
+
+description: How to use Teams JavaScript client SDK to integrate People Picker capability
+keywords: people picker control
+
+localization_priority: Normal
+++
+# Integrate People Picker capability
+
+People Picker is a control to search and select people. This is a native capability available in Teams platform. You can integrate Teams native People Picker input control with your web apps. You can select between single or multi selection, and configurations, such as limiting search within a chat, channels, or across the entire organization.
+
+You can use [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true), which provides `selectPeople` API to integrate the People Picker capability within your web app.
+
+## Advantages of integrating People Picker capability
+
+* The People Picker control works in all of Teams surfaces, such as task module, a chat, channel, meeting tab, and personal app.
+* This control allows you to search for and select users within a chat, channel, or the entire organization.
+* The People Picker capability helps with scenarios involving task assignment, tagging, notifying a user.
+* You can use this readily available control in your web app. It saves the effort and time significantly to build such a control on your own.
+
+You must call the `selectPeople` API to integrate People Picker control in your Teams app. For effective integration, you must have an understanding of [code snippet](#code-snippet) for calling the API.
+It is important to familiarize yourself with the [API response errors](#error-handling) to handle the errors in your web app.
+
+> [!NOTE]
+> Currently, Microsoft Teams support for People Picker capability is available for mobile clients only.
+
+## `selectPeople` API
+
+`selectPeople` API enables you to add Teams native `People Picker input control` to your web apps.
+The API description is as follows:
+
+| API | Description |
+| | |
+|**selectPeople**|Launches a People Picker and allows the user to search and select one or more people from the list.<br/><br/>This API returns the ID, name and email address of selected users to the calling web app.<br/><br/>In case of a personal app, the control searches across the organization. If the app is added to a chat or channel, then the search context is configured depending on the scenario. The search is restricted within the members of that chat, channel, or made available across the organization.|
+
+The `selectPeople` API comes along with following input configurations:
+
+|Configuration parameter|Type|Description| Default value|
+|--||--||
+|`title`| String| It is an optional parameter. It sets title for the People Picker control. | Select people|
+|`setSelected`|String| It is an optional parameter. You must pass AAD IDs of the people to be preselected. This parameter preselects people while launching the People Picker control. In case of single selection, only the first valid user is prepopulated ignoring the rest. |Null|
+|`openOrgWideSearchInChatOrChannel`|Boolean | It is an optional parameter. When it is set to true, it launches the People Picker in organization wide scope even if the app is added to a chat or channel. |False|
+|`singleSelect`|Boolean|It is an optional parameter. When it is set to true, it launches the People Picker restricting the selection to one user only. |False|
+
+The following image depicts the experience of People Picker capability in a sample web app:
+
+![Web app experience of People Picker capability](../../assets/images/tabs/people-picker-control-capability.png)
+
+### Code snippet
+
+**Calling `selectPeople` API** to select people from a list:
+
+```javascript
+ microsoftTeams.people.selectPeople((error: microsoftTeams.SdkError, people: microsoftTeams.people.PeoplePickerResult[]) =>
+ {
+ if (error)
+ {
+ if (error.message)
+ {
+ alert(" ErrorCode: " + error.errorCode + error.message);
+ }
+ else
+ {
+ alert(" ErrorCode: " + error.errorCode);
+ }
+ }
+ if (people)
+ {
+ output(" People length: " + people.length + " " + JSON.stringify(people));
+ }
+ });
+```
+
+## Error handling
+
+You must ensure to handle the errors appropriately in your web app. The following table lists the error codes and the conditions under which the errors are generated:
+
+|Error code | Error name | Condition|
+| | | -- |
+| **100** | NOT_SUPPORTED_ON_PLATFORM | API is not supported on the current platform.|
+| **500** | INTERNAL_ERROR | Internal error is encountered while launching People Picker.|
+| **4000** | INVALID_ARGUMENTS | API is invoked with wrong or insufficient mandatory arguments.|
+| **8000** | USER_ABORT |User cancelled the operation.|
+| **9000** | OLD_PLATFORM | User is on old platform build where implementation of the API is not present. Upgrading the build resolves the issue.|
+
+## See also
+
+* [Integrate media capabilities in Teams](mobile-camera-image-permissions.md)
+* [Integrate QR code or barcode scanner capability in Teams](qr-barcode-scanner-capability.md)
+* [Integrate location capabilities in Teams](location-capability.md)
platform Qr Barcode Scanner Capability https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/device-capabilities/qr-barcode-scanner-capability.md
# Integrate QR or barcode scanner capability
-This document guides you on how to integrate the QR or barcode scanner capability.
- Barcode is a method of representing data in a visual and machine-readable form. The barcode contains information about a product, such as a type, size, manufacturer, and Country of origin in the form of bars and spaces. The code is read using the optical scanner on your native device camera. For a richer collaborative experience, you can integrate the QR or barcode scanner capability provided in the Teams platform with your Teams app. You can use [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client?view=msteams-client-js-latest&preserve-view=true), which provides the tools necessary for your app to access the userΓÇÖs [native device capabilities](native-device-permissions.md). Use the [scanBarCode](/javascript/api/@microsoft/teams-js/microsoftteams.media?view=msteams-client-js-latest&preserve-view=true#scanBarCode__error__SdkError__decodedText__string_____void__BarCodeConfig_) API to integrate the scanner capability within your app.
It is important to familiarize yourself with the [API response errors](#error-ha
## Update manifest
-Update your Teams app [manifest.json](../../resources/schem#devicepermissions) file by adding the `devicePermissions` property and specifying `media`. It allows your app to ask for requisite permissions from users before they start using the QR or barcode scanner capability.
+Update your Teams app [manifest.json](../../resources/schem#devicepermissions) file by adding the `devicePermissions` property and specifying `media`. It allows your app to ask for requisite permissions from users before they start using the QR or barcode scanner capability. The update for app manifest is as follows:
``` json "devicePermissions": [
The **scanBarCode()** API supports the following barcode types:
| UPC-A | Yes | Yes | | UPC-E | Yes | Yes |
-**Web app experience for `ScanBarCode` API for QR or barcode scanner capability**
+The following image depicts web app experience of QR or barcode scanner capability:
+ ![web app experience for qr or barcode scanner capability](../../assets/images/tabs/qr-barcode-scanner-capability.png) ## Error handling
microsoftTeams.media.scanBarCode((error: microsoftTeams.SdkError, decodedText: s
* [Integrate media capabilities in Teams](mobile-camera-image-permissions.md) * [Integrate location capabilities in Teams](location-capability.md)
+* [Integrate People Picker capability in Teams](people-picker-capability.md)
+
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/whats-new.md
Microsoft Teams platform features that are available to all app developers.
| **Date** | **Notes** | **Changed topics** | | -- | | |
+|06/28/2021|Integrate People Picker capability.|[Integrate People Picker capability](concepts/device-capabilities/people-picker-capability.md)|
|06/25/2021| Introduced step-by-step guide to send proactive messages. | [Step-by-step guide to send proactive messages](sbs-send-proactive.yml) | |06/09/2021| Stage view for images in Adaptive Cards with `allowExpand` attribute. | [Stage view for images in Adaptive Cards](~/task-modules-and-cards/cards/cards-format.md) | |05/31/2021| Conversational tabs. | [Start and continue conversations about content in your tabs](~/tabs/how-to/conversational-tabs.md) |