发布 teamsapp

命名空间:microsoft.graph

应用发布到Microsoft Teams目录。 具体而言,此 API 将应用程序发布到组织的目录 (租户应用程序目录) ;创建的资源将 具有 的 distributionMethod 属性值 organization

requiresReview 属性允许任何用户提交应用供管理员审阅。 管理员可以通过此 API 或管理中心批准或拒绝Microsoft Teams应用。

权限

需要以下权限之一才能调用此 API。要了解包括如何选择权限的详细信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) AppCatalog.Submit、AppCatalog.ReadWrite.All、Directory.ReadWrite.All**
委派(个人 Microsoft 帐户) 不支持
应用程序 不支持。

注意:标记为 ** 的权限仅支持向后兼容。 建议您更新解决方案以使用上表中列出的备用权限,并避免今后使用这些权限。

HTTP 请求

POST /appCatalogs/teamsApps

若要发布需要审阅的应用:

POST /appCatalogs/teamsApps?requiresReview:{Boolean}

查询参数

属性 类型 说明
requiresReview 布尔值 此可选查询参数将触发应用评审过程。 具有管理员权限的用户无需触发审查即可提交应用。 如果用户想要在发布之前请求审阅,则必须将 设置为 requiresReview true。 具有管理员权限的用户可以选择 requiresReview 不设置或将 false 值设置为 ,应用将被视为已批准,并且将立即发布。

请求标头

标头
Authorization Bearer {token}。必需。
Content-Type application/zip。 必需。

请求正文

在请求正文中,包括Teams zip 清单有效负载。 有关详细信息,请参阅 创建应用包

应用程序目录中的每个应用程序必须具有唯一的清单 ID。

响应

如果成功,此方法返回 响应 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",
  "name": "Test App",
  "version": "1.0.0",
  "distributionMethod": "organization"
}

示例 2:Upload新应用程序以检查组织的应用程序目录

请求

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",
  "name": "Test App",
  "version": "1.0.0",
  "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
}