Graph 要求在 Teams 上安装应用 returns 409(冲突)

Graph calls for installing app on Teams returns 409 (Conflict)

在尝试为团队安装应用程序时,我的图形调用突然开始 return 409(冲突)- 有什么原因吗?

我要安装的应用是 Dynamics 365 应用,其 teamsAppId:cd2d8695-bdc9-4d8e-9620-cc963ed81f41

我使用的电话(POST):

https://graph.microsoft.com/v1.0/teams/[my 团队 ID]/installedApps

正文:

{
  "teamsApp odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/cd2d8695-bdc9-4d8e-9620-cc963ed81f41"
} 

回复:

{
 "error": {
 "code": "Conflict",
 "message": "AppEntitlement id: 'cd2d8695-bdc9-4d8e-9620-cc963ed81f41' already exists in TeamId:  '19:e2pHF8IE87LgVTlA_4zDD5LblLqViGo7GcdtcsW9hOw1@thread.tacv2' ",
 "innerError": {
 "message": "AppEntitlement id: 'cd2d8695-bdc9-4d8e-9620-cc963ed81f41' already exists in TeamId:   '19:e2pHF8IE87LgVTlA_4zDD5LblLqViGo7GcdtcsW9hOw1@thread.tacv2' ",
 "code": "Conflict",
 "innerError": {},
 "date": "2022-03-28T18:13:36",
 "request-id": "424e8c44-ab49-4706-9dc0-1af3ecea6145",
 "client-request-id": "248ad040-ab62-5190-26a8-c2da6127716c"
}
}

疑难解答:

确认应用程序未安装,如果我 运行 使用 (GET) 检查应用程序是否已安装:

https://graph.microsoft.com/v1.0/teams/[my 团队 ID]/installedApps?$expand=teamsAppDefinition&$filter=teamsAppDefinition/teamsAppId eq '{cd2d8695-bdc9-4d8e-9620-cc963ed81f41}'

它returns:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('a001122-2c62-4006-adaa-6d8112b660f3')/installedApp...())",
    "@odata.count": 0,
    "value": []
}

如果使用 (GET) 相同:

https://graph.microsoft.com/v1.0/teams/[my队号]/installedApps/cd2d8695-bdc9-4d8e-9620-cc963ed81f41

我在哪里得到:

“未找到团队“[我的团队 ID]”的 ID 'cd2d8695-bdc9-4d8e-9620-cc963ed81f41' 的应用程序安装。”

很明显,该应用程序尚未安装,所以关于为什么突然开始发生这种情况有什么想法吗?

/亚当

我在检查该应用程序是否已安装的电话中出现错字,id 周围不应有“{”和“}”。

所以使用正确的调用:

https://graph.microsoft.com/v1.0/teams/[my team id]/installedApps?$expand=teamsAppDefinition&$filter=teamsAppDefinition/teamsAppId eq 'cd2d8695-bdc9-4d8e-9620-cc963ed81f41'

Returns 如果该应用程序已安装,我可以在尝试安装该应用程序之前使用上述调用以确保它未安装。