Публикация teamsApp
Пространство имен: microsoft.graph
Опубликуйте приложение в каталоге приложений Microsoft Teams.
В частности, этот API публикует приложение в каталоге вашей организации (каталог приложений клиента); Созданный ресурс имеет значение свойства distributionMethod , равное organization
.
Свойство requiresReview позволяет любому пользователю отправлять приложение на проверку администратором. Администраторы могут утверждать или отклонять эти приложения с помощью этого API или Центра администрирования Microsoft Teams.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ❌ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | AppCatalog.Submit | AppCatalog.ReadWrite.All, Directory.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Для приложений | Не поддерживается. | Не поддерживается. |
Примечание.
Разрешение Directory.ReadWrite.All поддерживается только для обратной совместимости. Рекомендуется обновить решения, чтобы использовать другое разрешение, указанное в предыдущей таблице, и избегать использования этих разрешений в будущем.
HTTP-запрос
POST /appCatalogs/teamsApps
Чтобы опубликовать приложение, требующее проверки, выполните следующие действия:
POST /appCatalogs/teamsApps?requiresReview={Boolean}
Параметры запроса
Свойство | Тип | Описание |
---|---|---|
requiresReview | Логический | Этот необязательный параметр запроса активирует процесс проверки приложения. Пользователи с правами администратора могут отправлять приложения без запуска проверки. Если пользователи хотят запросить проверку перед публикацией, они должны задать для параметра requiresReview значение true . Пользователь с правами администратора может отказаться от установки обязательного просмотра или задать значение false , а приложение будет утверждено и немедленно опубликовано. |
Заголовки запросов
Заголовок | Значение |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Content-Type | application/zip. Обязательно. |
Текст запроса
В тексте запроса добавьте полезные данные zip-манифеста Teams. Дополнительные сведения см. в разделе Создание пакета приложения.
Каждое приложение в каталоге приложений должно иметь уникальный идентификатор манифеста.
Отклик
В случае успешного 200 OK
выполнения этот метод возвращает код ответа и объект teamsApp . Если манифест приложения содержит ошибки проверки, запрос возвращает ответ на ошибку с подробными сведениями об ошибках схемы.
Примеры
Пример 1. Публикация приложения в каталоге приложений
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/v1.0/appCatalogs/teamsApps
Content-type: application/zip
[Zip file containing a Teams app package]
Сведения о создании ZIP-файла приложения Microsoft Teams см. в разделе Создание пакета приложения.
Отклик
Ниже показан пример отклика.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "e3e29acb-8c79-412b-b746-e6c39ff4cd22",
"externalId": "b5561ec9-8cab-4aa3-8aa2-d8d7172e4311",
"displayName": "Test App",
"distributionMethod": "organization"
}
Пример 2. Отправка нового приложения для проверки в каталог приложений организации
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/v1.0/appCatalogs/teamsApps?requiresReview=true
Content-type: application/zip
Отклик
Ниже показан пример отклика.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/e3e29acb-8c79-412b-b746-e6c39ff4cd22
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#appCatalogs/teamsApps/$entity",
"id": "e3e29acb-8c79-412b-b746-e6c39ff4cd22",
"externalId": "b5561ec9-8cab-4aa3-8aa2-d8d7172e4311",
"displayName": "Test App",
"distributionMethod": "organization"
}
Пример 3. Утверждение или отклонение приложения, ожидающего проверки
Запрос
Ниже показан пример запроса.
PATCH https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/a761ad07-22ef-4a53-9feb-2837c8ad4a84/appDefinitions/YTc2MWFkMDctMjJlZi00YTUzLTlmZWItMjgzN2M4YWQ0YTg0IyMxLjEuOCMjU3VibWl0dGVk
Content-type: application/json
If-Match: InFtSStsNVJHVWdzWUJRU2ZVWGp4RWc9PSI=
{
"publishingState":"published"
}
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#appCatalogs/teamsApps('a761ad07-22ef-4a53-9feb-2837c8ad4a84')/appDefinitions/$entity",
"id": "YTc2MWFkMDctMjJlZi00YTUzLTlmZWItMjgzN2M4YWQ0YTg0IyMxLjEuOCMjUHVibGlzaGVk",
"teamsAppId": "a761ad07-22ef-4a53-9feb-2837c8ad4a84",
"azureADAppId": null,
"displayName": "Ducks",
"version": "1.1.8",
"requiredResourceSpecificApplicationPermissions": [],
"publishingState": "published",
"shortDescription": "quaerat quasi magnam. slight change. 5",
"description": "Aliquid placeat animi debitis accusamus. Non perferendis ullam. Quis est consequuntur vitae provident. Sunt laudantium id aut. slight change 5",
"lastModifiedDateTime": null,
"createdBy": null
}
Пример 4. Публикация приложения в каталоге приложений с ошибкой в манифесте приложения
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/v1.0/appCatalogs/teamsApps
Content-type: application/zip
[Zip file containing a Teams app package]
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
Content-type: application/json
{
"error": {
"code": "BadRequest",
"message": "name | Required properties are missing from object: [].; developer.websiteUrl | String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
"innerError": {
"code": "UnableToParseTeamsAppManifest",
"message": "name | Required properties are missing from object: [].; developer.websiteUrl | String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
"details": [
{
"code": "SchemaError_Required",
"message": "Required properties are missing from object: [].",
"target": "name"
},
{
"code": "SchemaError_Pattern",
"message": "String \"hs://www.yo.com\" does not match regex pattern \"^[Hh][Tt][Tt][Pp][Ss]?://\".",
"target": "developer.websiteUrl"
}
],
"date": "2024-01-18T21:47:58",
"request-id": "d1878136-bc88-421a-b342-c3d883db31a1",
"client-request-id": "d1878136-bc88-421a-b342-c3d883db31a1"
}
}
}
Связанные материалы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по