Публикация teamsApp

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Опубликуйте приложение в каталоге приложений 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 поддерживается только для обратной совместимости. Рекомендуется обновить решения, чтобы использовать другое разрешение, указанное в предыдущей таблице, и избегать использования этих разрешений в будущем.
  • Разрешение AppCatalog.Submit позволяет отправлять приложения только для проверки, а не публиковать их в каталоге.

HTTP-запрос

POST /appCatalogs/teamsApps

Чтобы опубликовать приложение, требующее проверки, выполните следующие действия:

POST /appCatalogs/teamsApps?requiresReview={Boolean}

Параметры запроса

Свойство Тип Описание
requiresReview Логический Этот необязательный параметр запроса активирует процесс проверки приложения. Пользователи с правами администратора могут отправлять приложения без запуска проверки. Если пользователи хотят запросить проверку перед публикацией, они должны задать для параметра requiresReview значение true. Пользователь с правами администратора может отказаться от установки обязательного просмотра или задать значение false , а приложение будет утверждено и немедленно опубликовано.

Заголовки запросов

Заголовок Значение
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/zip. Обязательно.

Текст запроса

В тексте запроса добавьте полезные данные zip-манифеста Teams. Дополнительные сведения см. в разделе Создание пакета приложения.

Каждое приложение в каталоге приложений должно иметь уникальный идентификатор манифеста.

Отклик

В случае успешного 200 OK выполнения этот метод возвращает код ответа и объект teamsApp . Если манифест приложения содержит ошибки проверки, запрос возвращает ответ на ошибку с подробными сведениями об ошибках схемы.

Отклик с ошибкой

При отправке запроса на отправку манифеста приложения, содержащего отсутствующие сведения или ошибки, вы получите сообщение об ошибке, содержащее внутренний код UnableToParseTeamsAppManifestошибки . Свойство details внутренней ошибки содержит код ошибки и сообщение об ошибке. В следующей таблице описаны коды ошибок, которые могут возникнуть.


Ответ об ошибке
Код ошибки Сообщение об ошибке Описание
ActivityGroupIdFromActivitiesTypeValidation Поле ActivityGroupId в ActivityType должно быть подмножеством поля идентификатора в ActivityGroup. Поле ActivityGroupId в ActivityType не является подмножеством поля Id в ActivityGroup в манифесте приложения.
ActivityTypesMustExistWithActivitiesGroupValidation Манифест не должен содержать группу действий, если отсутствуют типы действий. Свойство ActivityGroup доступно, но свойство ActivityType отсутствует в манифесте приложения.
ApiBasedComposeExtensionApiResponseRenderingTemplateFileNullOrEmpty Расширение compose на основе API должно иметь apiResponseRenderingTemplateFile, определенный в манифесте. Расширение compose на основе API не содержит apiResponseRenderingTemplateFile, определенного в манифесте приложения.
ApiBasedComposeExtensionApiSpecificationFileNullOrEmpty Расширение compose на основе API должно иметь apiSpecificationFile, определенный в манифесте. Расширение compose на основе API не содержит apiSpecificationFile, определенного в манифесте приложения.
ApiBasedComposeExtensionManifestCommandIdsNotIncludedInOperationIdsOnApiSpecficationFile Идентификаторы команд в манифесте не включаются в файл идентификаторов операций в спецификации API. Ошибка, возникающая, если идентификаторы команд в манифесте приложения не включены в файл идентификаторов операций в файле спецификации API.
ApiBasedComposeExtensionWithBotId Расширение compose на основе API не может иметь определение botId. Расширение compose на основе API имеет botId, определенный в манифесте приложения.
ApiBasedComposeExtensionWithCanUpdateConfiguration Расширение compose на основе API не может содержать параметр canUpdateConfiguration в манифесте. Расширение compose на основе API имеет свойство canUpdateConfiguration, определенное в манифесте приложения.
ApiBasedComposeExtensionWithNoParameter Расширение compose на основе API должно иметь параметры команды, определенные в манифесте. Расширение compose на основе API не содержит параметров команд, определенных в манифесте приложения.
ApiSecretServiceAuthTypeComposeExtensionContainsMsftEntraConfiguration Расширение создания на основе API с apiSecretServiceAuth authType имеет определение microsoftEntraConfiguration. Расширение compose на основе API содержит определение microsoftEntraConfiguration в манифесте приложения.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretRegistrationId Расширение создания на основе API с apiSecretServiceAuth authType не определяет apiSecretRegistrationId. Расширение compose на основе API с authType apiSecretServiceAuth без apiSecretRegistrationId, определенного в манифесте приложения.
ApiSecretServiceAuthTypeComposeExtensionContainsNoApiSecretServiceAuthConfiguration Расширение создания на основе API с apiSecretServiceAuth authType не имеет apiSecretServiceConfiguration. Расширение compose на основе API не устанавливает значение true в манифесте приложения для параметра supportsSingleSignOn.
ApiSpecificationFileContainUnsupportedHttpMethod Расширение compose на основе API содержит URL-адреса сервера с неподдерживаемым методом HTTP, определенным в apiSpecificationFile. В настоящее время поддерживаются только GET и POST. Расширение compose на основе API имеет неподдерживаемый метод HTTP, определенный в apiSpecificationFile.
ApiSpecificationFileParameterContainUnsupportedSchemaType Расширение compose на основе API имеет неподдерживаемый тип схемы параметра, определенный в apiSpecificationFile.Массивы не поддерживаются. Расширение compose на основе API имеет неподдерживаемый тип схемы параметра, определенный в apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedMediaType Расширение compose на основе API имеет неподдерживаемый тип мультимедиа, определенный в тексте запроса на apiSpecificationFile. В настоящее время поддерживается только приложение или json. Расширение compose на основе API имеет неподдерживаемый тип мультимедиа, определенный в тексте запроса в apiSpecificationFile.
ApiSpecificationFileRequestBodyContainUnsupportedSchemaType Расширение compose на основе API имеет неподдерживаемый тип схемы, определенный в тексте запроса в apiSpecificationFile. В настоящее время массивы не поддерживаются. Расширение compose на основе API имеет неподдерживаемый тип схемы, определенный в тексте запроса в apiSpecificationFile.
ApiSpecificationFileRequestBodySchemaContainKeywords Расширение compose на основе API содержит ключевые слова. Расширение compose на основе API содержит ключевые слова, определенные в тексте запроса в apiSpecificationFile.
ApiSpecificationFileRequiredParameterContainUnsupportedLocation Расширение compose на основе API имеет неподдерживаемое расположение параметров, определенное в apiSpecificationFile для {0}. В настоящее время поддерживаются только путь и запрос. Расширение compose на основе API имеет неподдерживаемое расположение параметра, определенное в apiSpecificationFile.
ApiSpecificationFileRequiredParameterOrPropertyNotDefinedOnManifest Расширение compose на основе API содержит обязательные параметры или свойства {0} , не определенные в манифесте. Расширение compose на основе API имеет обязательный параметр, который не определен в манифесте приложения.
ApiSpecificationFileResponseContainUnsupportedMediaType Расширение compose на основе API имеет неподдерживаемый тип мультимедиа, определенный в ответе на apiSpecificationFile. В настоящее время поддерживается только приложение или json. Расширение compose на основе API имеет неподдерживаемый тип мультимедиа, определенный в ответе в apiSpecificationFile.
ApiSpecificationFileServerUrlsContainHttp Расширение compose на основе API содержит URL-адреса сервера с протоколом HTTP, определенным в apiSpecificationFile. Расширение compose на основе API содержит URL-адреса сервера, содержащие протокол HTTP в apiSpecificationFile.
ApiSpecificationFileServerUrlsContainInvalidUrl Расширение compose на основе API содержит URL-адреса сервера, которые являются недопустимыми URL-адресами, определенными в apiSpecificationFile. Расширение compose на основе API имеет недопустимый URL-адрес, определенный в apiSpecificationFile.
BotBasedComposeExtensionApiResponseRenderingTemplateFileExists Расширение compose на основе ботов не может иметь apiResponseRenderingTemplateFile. Расширение compose на основе бота содержит свойство apiResponseRenderingTemplateFile, определенное в манифесте приложения.
BotBasedComposeExtensionApiSpecificationFileExists Расширение compose на основе бота не может иметь apiSpecificationFile. Расширение compose на основе бота содержит файл спецификации API, определенный в манифесте приложения.
BotBasedComposeExtensionBotIdNotGuid Расширение compose на основе бота должно иметь идентификатор GUID botId. Bot-based compose extensionid не является GUID.
BotIdIsNotGuid BotId не является значением GUID. Значение BotId в манифесте приложения не является GUID.
CommonAppIdIsNotGuid Поле ID не является guid в манифесте. Идентификатор приложения не является GUID.
CommonAppIdIsRequiredField В манифесте отсутствует обязательное поле ID. Идентификатор appId не указан.
CommonManifestVersionIsRequiredField Отсутствует обязательное поле в манифесте "версия манифеста". Версия манифеста не указана.
CommonSchemaUrlIsRequiredField Должен присутствовать URL-адрес схемы. Схема не указана.
DashboardCardBothIconNameAndUrlPresent Значок карточки панели мониторинга не должен содержать имя значка и URL-адрес. Значок карточки панели мониторинга не должен содержать имя значка и URL-адрес.
DashboardCardEntityIdsAreNotUnique Идентификаторы сущностей карта панели мониторинга должны быть уникальными. Возвращаемый идентификатор сущности для карта панели мониторинга не является уникальным в манифесте.
DeveloperNameIsRequiredField В манифесте отсутствует обязательное поле "имя разработчика". Имя разработчика не указано.
DeveloperNameLengthCheck Максимальная длина символов не должна превышать 32 символа. Имя разработчика содержит более 32 символов.
DeveloperPrivacyUrlIsRequiredField В манифесте отсутствует обязательное поле privacyUrl. PrivacyUrl отсутствует в манифесте приложения.
DeveloperPrivacyUrlMustBeHttps URL-адрес конфиденциальности должен быть защищенным URL-адресом поддержки (HTTPS). URL-адрес конфиденциальности разработчика не использовал HTTPS.
DeveloperTermsOfUseUrlIsRequiredField В манифесте отсутствует обязательное поле termsOfUseUrl. В манифесте отсутствует параметр termsOfUseUrl.
DeveloperTermsOfUseUrlMustBeHttps URL-адрес условий использования должен быть защищен URL-адресом поддержки (HTTPS). URL-адрес условий использования разработчика не использует HTTPS.
DeveloperWebsiteUrlIsRequiredField В манифесте отсутствует обязательное поле websiteUrl. Отсутствует URL-адрес веб-сайта разработчика.
DeveloperWebsiteUrlMustBeHttps URL-адрес веб-сайта должен быть защищенным URL-адресом поддержки (HTTPS). URL-адрес веб-сайта разработчика не использует HTTPS.
FullDescriptionCannotBeEmpty Полное описание не может быть пустым. Полное описание пусто.
FullDescriptionLengthCheck Максимальная длина символов для длинного описания не должна превышать 4000 символов. Полная длина описания составляет более 4000 символов.
GroupChatForBotsLessThanV13 Обновите версию манифеста до версии 1.3, так как бот группового чата поддерживается в манифесте версии 1.3 и более поздних версий. Область groupChat для ботов не поддерживается в манифесте приложения версии 1.3 и ниже.
GroupChatForConfigurableTabsLessThanV13 Обновите версию манифеста до версии 1.3, так как настраиваемые вкладки группового чата поддерживаются в манифесте версии 1.3 и более поздней версии. Область groupChat для настраиваемых вкладок не поддерживается в манифесте приложения версии 1.3 и более поздних.
InvalidColor32x32IconHeightAndWidth Цветной значок 32x32 должен иметь значение 32x32 с только белым и прозрачным. Цветной значок 32x32 имеет неправильные размеры.
InvalidColorIconHeightAndWidth Значок цвета не в соответствии с требуемым измерением. Размеры значка цвета неверны.
InvalidOutlineIconHeightAndWidth Маленький значок должен иметь размер 32 x 32 с белым и прозрачным. Размеры значка контура неверны.
InvalidOutlineIconTransparency Значок структуры не является прозрачным. Это Альфа. Значок структуры содержит пиксели, которые не являются ни прозрачными, ни белыми со значениями {0}Alpha, R, G, B , {1}, {2}и {3}.
MsftEntraAuthTypeComposeExtensionContainsApiSecretServiceConfiguration Расширение создания на основе API с microsoftEntra authType определяет apiSecretServiceConfiguration. Расширение compose на основе API содержит apiSecretServiceConfiguration, определенное в манифесте.
MsftEntraAuthTypeComposeExtensionContainsNoMsftEntraConfiguration Расширения создания на основе API с microsoftEntra authType не определены в microsoftEntraConfiguration. Расширение compose на основе API не определяет microsoftEntraConfiguration в манифесте приложения.
MsftEntraAuthTypeComposeExtensionResourceURLNotMatchServerURLOnApiSpec Расширение создания на основе API с URL-адресом ресурса microsoftEntra authType в манифесте не соответствует URL-адресу сервера в файле спецификации API. Расширение compose на основе API с URL-адресом ресурса microsoftEntra authType в манифесте приложения не соответствует URL-адресу сервера в файле спецификации API.
MsftEntraAuthTypeComposeExtensionSupportsSingleSignOnFalse Расширение compose на основе API с microsoftEntra authType не задает значение true для параметра supportSingleSignOn. Расширение compose на основе API не задает значение supportsSingleSignOntrue в манифесте приложения.
MsftEntraAuthTypeComposeExtensionWebApplicationInfoOrResourceNotDefined Расширение создания на основе API с microsoftEntra authType не определяет webApplicationInfo или ресурс в манифесте. Расширение compose на основе API с microsoftEntra authType не содержит webApplicationInfo или ресурса, определенного в манифесте приложения.
NoAuthTypeComposeExtensionContainsAuthConfiguration Для расширения создания на основе API без authType определена конфигурация, связанная с проверкой подлинности. Расширение создания на основе API с authType microsoftEntraConfiguration или apiSecretServiceConfiguration не определено в манифесте приложения.
ParameterOnManifestNotDefinedOnApiSpecFile Для расширения создания на основе API параметры {0} манифеста не определены в файле спецификации API. Параметры расширения создания на основе API в манифесте приложения не определены в файле спецификации API.
ReservedActivitiesValidation Манифест не должен содержать зарезервированный тип действия systemDefault. Тип действия systemDefault определен в манифесте приложения.
ReservedStaticTabNameShouldBeNull Зарезервированное свойство "Имя" вкладки не должно указываться. Задано зарезервированное свойство staticTabs name.
SchemaError_AdditionalItems Схема не разрешает использование дополнительных элементов. Файл манифеста приложения не выполнил проверку схемы additionalItems.
SchemaError_AdditionalProperties Свойство {0} не определено, и схема не разрешает дополнительные свойства. Файл манифеста приложения не выполнил проверку схемы additionalProperties. {0} Здесь представляет дополнительное свойство.
SchemaError_AllOf JSON не соответствует всем схемам из allOf. Файл манифеста приложения не выполнил проверку схемы allOf.
SchemaError_AnyOf JSON не соответствует ни одной схеме из anyOf. Файл манифеста приложения не выполнил проверку схемы anyOf.
SchemaError_Const Значение {0} не соответствует константе {1}. Файл манифеста приложения не выполнил проверку const схемы. Здесь представляет значение, {0} которое завершилось сбоем, и {1} представляет правильное значение.
SchemaError_Contains Массив не содержит обязательный элемент. Файл манифеста приложения не смог проверить схему.
SchemaError_ContentEncoding Строка {0} не проверяет кодировку {1}содержимого . Файл манифеста приложения не выполнил проверку contentEncoding схемы. Здесь представляет строку, {0} которая не соответствует кодировке содержимого, и {1} представляет ожидаемую кодировку содержимого.
SchemaError_Dependencies Сбой зависимостей для свойства {0} . Отсутствуют необходимые ключи. Файл манифеста приложения не выполнил проверку зависимостей схемы. Здесь представляет свойство, {0} которое завершилось сбоем.
SchemaError_Else JSON не соответствует схеме из "else". Файл манифеста приложения не выполнил проверку схемы else.
SchemaError_Enum Значение {0} не определено в перечислении. Файл манифеста приложения не выполнил проверку перечисления схемы. Здесь представляет значение, {0} которое отсутствует в перечислении.
SchemaError_Format Строка {0} не проверяет формат {1}. Файл манифеста приложения не выполнил проверку формата схемы. Здесь представляет строку, {0} которая не соответствует ожидаемому формату, и {1} представляет ожидаемый формат.
SchemaError_Id Обнаружен повторяющийся идентификатор {0} схемы. Файл манифеста приложения не выполнил проверку идентификатора схемы. {0} Здесь представляет идентификатор схемы.
SchemaError_Maximum Целое число {0} превышает максимальное значение {1}. Файл манифеста приложения не выполнил максимальную проверку схемы. Здесь представляет значение, превышающее максимальное ограничение, {0} и {1} максимальное ограничение.
SchemaError_MaximumItems Число {0} элементов массива превышает максимальное число {1}элементов . Файл манифеста приложения не выполнил проверку схемы maximumItems. {0} Здесь представляет количество элементов в массиве и {1} максимально допустимое значение.
SchemaError_MaximumLength Строка {0} превышает максимальную длину {1}. Файл манифеста приложения не выполнил проверку схемы maximumLength. Здесь представляет строку, {0} которая превышает максимальную длину, и {1} представляет максимальную длину.
SchemaError_MaximumProperties Число {0} свойств объекта превышает максимальное число {1}. Файл манифеста приложения не выполнил проверку схемы maximumProperties. {0} Здесь представляет количество предоставленных свойств и {1} максимально допустимые свойства.
SchemaError_Minimum Целое число {0} меньше минимального {1}значения . Файл манифеста приложения не выполнил минимальную проверку схемы. Здесь представляет значение, {0} которое превышает минимальное ограничение, и {1} представляет минимальное ограничение.
SchemaError_MinimumItems Число {0} элементов массива меньше минимального {1}числа . Файл манифеста приложения не выполнил проверку схемы minimumItems. {0} Здесь представляет количество элементов в массиве и {1} минимально допустимое значение.
SchemaError_MinimumLength Строка {0} меньше минимальной {1}длины . Файл манифеста приложения не выполнил минимальную проверку схемы. Здесь представляет строку, {0} которая меньше минимальной длины и {1} представляет минимальное значение.
SchemaError_MinimumProperties Количество {0} свойств объекта меньше, чем минимальное {1}число . Файл манифеста приложения не выполнил проверку схемы minimumProperties. {0} Здесь представляет количество предоставленных свойств и {1} минимально допустимые свойства.
SchemaError_MultipleOf Целое число {0} не кратно {1}. Файл манифеста приложения не выполнил проверку схемы multipleOf. {0} Здесь представляет целочисленное значение и {1} указывает на требуемое кратное значение.
SchemaError_Not JSON допустим для схемы из "not". Файл манифеста приложения не выполнил проверку схемы.
SchemaError_OneOf JSON допустим для нескольких схем из oneOf. Файл манифеста приложения не выполнил проверку схемы oneOf.
SchemaError_Other Значение не соответствует схеме для этого свойства. Файл манифеста приложения завершился сбоем других необработанных проверок схемы.
SchemaError_Pattern Строка {0} не соответствует шаблону регулярных выражений "{1}". Файл манифеста приложения не выполнил проверку шаблона схемы. Здесь представляет значение, которое не соответствует шаблону, {0} и {1} представляет ожидаемый шаблон.
SchemaError_PatternProperties Не удалось проверить имена свойств с шаблоном регулярных выражений "{0}". Файл манифеста приложения не смог проверить схему patternProperties. {0} Здесь представляет шаблон для свойств .
SchemaError_Required В объекте отсутствуют обязательные свойства: {0}. Файл манифеста приложения не выполнил требуемую проверку схемы. {0} Здесь представляет обязательные свойства.
SchemaError_Then JSON не соответствует схеме из "then". Файл манифеста приложения не выполнил проверку схемы.
SchemaError_Type Значение {0} не имеет ожидаемого типа {1}. Файл манифеста приложения не выполнил проверку типа схемы. Здесь представляет строку, {0} которая не является ожидаемым типом, и {1} представляет ожидаемый тип.
SchemaError_UniqueItems Массив содержит элементы, которые не являются уникальными. Файл манифеста приложения не проверил схему uniqueItems.
SchemaError_Valid Проверка схемы всегда завершается сбоем. Файл манифеста приложения не выполнил действительную проверку схемы.
Serialization_FileMissing Не удалось найти файл {0} в пакете приложения. Ожидаемый файл отсутствует в пакете приложения.
Serialization_FileNotValidJson Не удалось проанализировать файл как объект JSON. Отправленный файл не соответствует допустимому формату JSON.
Serialization_ManifestVersionPropertyMissing Файл не содержит свойство "{0}". Свойство manifestVersion отсутствует в файле манифеста приложения. {0} Здесь представляет строку для свойства manifestVersion.
Serialization_TrailingCommaInManifestJsonFile Json-файл манифеста содержит запятую. Файл манифеста приложения содержит запятую.
ServerUrlsMissingOnApiSpecificationFile Расширение compose на основе API не имеет URL-адресов сервера, определенных в apiSpecificationFile. Ошибка, возникающая. Расширение compose на основе API не имеет URL-адресов сервера, определенных в apiSpecificationFile.
ShortDescriptionCannotBeEmpty Краткое описание не может быть пустым Краткое описание было пустым.
ShortDescriptionLengthCheck Максимальная длина символов для краткого описания не должна превышать 80 символов. Краткое описание содержит более 80 символов.
ShortNameEqualsReservedName Краткое имя приложения не может быть зарезервированным. Короткое имя является зарезервированным.
ShortNameIsRequiredField Краткое имя приложения не может быть пустым. Короткое имя пусто.
ShortNameLengthCheck Максимальная длина символа для краткого имени не должна превышать 30 символов. Краткое имя превышает 30 символов.
StaticTabNameCouldNotBeEmpty Не зарезервированное свойство staticTabs "Name" не может быть пустым. Свойство staticTabs name пусто.
UniqueActivityTypeInActivitiesValidation Манифест не должен содержать повторяющийся тип действия. Тип действия не является уникальным в манифесте приложения.
UniqueIdInActivitiesGroupValidation Манифест не должен содержать повторяющийся идентификатор в Группы действия. Идентификатор группы действий не является уникальным в манифесте приложения.
VersionCannotBeEmpty В манифесте отсутствует обязательное поле version. Отсутствует версия пакета приложения.
VersionContainsOnlyNumbersDotSeparated Версия приложения поддерживает только числа в формате "#.#.#". Версия в пакете приложения не соответствует шаблону #.#.#.#.
VersionHasMajorLessThan1 Версия приложения не должна начинаться с "0". Например, версии 0.0.1 или 0.1 являются недопустимыми версиями приложений, а версии 1.0/ 1.5.1/ 1.0.0 / 2.5.0 являются допустимыми версиями приложений. В случае нового обновления в манифесте существующего приложения в Магазине. Версия приложения меньше 1.0. Необходимо обновить версию приложения. Например, если текущая версия приложения в Магазине — 1.0 и вы отправляете обновление для проверки, версия приложения должна быть выше 1.0.

Примеры

Пример 1. Публикация приложения в каталоге приложений

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/beta/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/beta/appCatalogs/teamsApps?requiresReview=true
Content-type: application/zip

Отклик

Ниже показан пример отклика.

HTTP/1.1 201 Created
Location: https://graph.microsoft.com/beta/appCatalogs/teamsApps/e3e29acb-8c79-412b-b746-e6c39ff4cd22

{
  "@odata.context": "https://graph.microsoft.com/beta/$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/beta/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/beta/$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"
        }
    }
}