0

我正在构建一个团队应用程序,该应用程序使用基于非 AAD 的服务进行身份验证。我想在我的可配置选项卡中获取团队图标。我有什么选择?我无法注册应用程序,因为 Teams 应用程序将部署在不同的租户上。我可以在/teams/${teamsid}/photo/$value不注册应用程序但代表用户的情况下将 microsoftTeams.authentication.getAuthToken 用于图形 api() 吗?或者有没有更简单的方法来获取团队图标。

const authTokenRequest: microsoftTeams.authentication.AuthTokenRequest = {
                successCallback: function (token: string) {
                  //const decoded: { [key: string]: any; } = jwt.decode(token);
                  //localStorage.setItem("name", decoded.name);
                  localStorage.setItem("token", token);
                   const response = await axios.get(apiConfig.endpoint + "/api/" + functionName, {
                        headers: {
                          authorization: "Bearer " + accessToken?.token || "",
                        },
                      });
                      return response.data;
                },
                failureCallback: function (error: any) {
                  console.log("Failure on getAuthToken: " + error);
                }
              };
              microsoftTeams.initialize(() => {
                microsoftTeams.getContext((r) => {
                  microsoftTeams.authentication.getAuthToken(authTokenRequest);
                });
              });

通过这个我得到以下错误:尝试处理身份验证响应:错误:invalid_resource|AADSTS500011:在名为 xxxx 的租户中找不到名为 api://xxxxx/botid-xxxx 的资源主体。如果租户管理员未安装应用程序或租户中的任何用户未同意此应用程序,则可能会发生这种情况。您可能将身份验证请求发送给了错误的租户。资源:api://xxxxx/botid-xxxx,错误映射到操作:resourceDisabled

4

1 回答 1

1

您必须注册您的应用才能使用图形 API。应用程序安装在不同的租户上绝对没有问题,您只需在注册应用程序时选择“多租户”选项即可启用此场景。

据我了解,徽标图片/图标被视为公司数据,因此您需要用户同意才能获取。因此,需要注册应用程序,并且用户(或用户管理员)必须同意在添加应用程序时授予应用程序访问团队信息的权限。

于 2021-11-29T19:40:51.087 回答