You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teams插件OAuth流程中app.initialize()初始化失败问题排查

Teams应用第三方OAuth认证后SDK初始化问题

我正尝试在Teams应用中实现基于Adobe ID(我网站使用的第三方OAuth提供商)的简易认证功能。遵循Teams官方的应用认证Node.js示例,Adobe ID认证环节一切正常,但进入认证结束页面时,调用await app.initialize();会抛出“SDK initialization timed out.”异常。示例代码里app.initialize()前没有await关键字,这是否有误?如果移除await,后续调用authentication.notifySuccess("Yippee");通知认证成功时,又会抛出“The library has not yet been initialized”异常。

问题:

  1. 如何解决app.initialize()无法正常工作的问题?
  2. 示例代码未使用await为何能正常运行?

认证结束页面的TypeScript代码:

import $ from "jquery";
import {app, authentication} from "@microsoft/teams-js";

startup();

async function startup(){
    try{
        $("#status").text("Initializing");
    
        await app.initialize();

        $("#status").text("Initialized");
        console.log("notifying of success");

        authentication.notifySuccess("Yippee");
    }
    catch(error){
        handleError(error, "initializing");
    }
}

function handleError(error:Error, context: string){
    console.error(`💥 Error ${context}: ${error.message}`);

    $("#status").text(error.message);
}

问题1:解决app.initialize()超时的方案

初始化超时主要是页面环境不对或者加载时机有问题,试试这几个操作:

  • 等页面完全加载再初始化:把startup()的调用改成在页面DOM加载完成后执行,避免SDK初始化时页面元素还没就绪:
    document.addEventListener('DOMContentLoaded', startup);
    
  • 确认页面是在Teams iframe里打开:认证结束页面必须是被Teams客户端(包括网页版)的iframe加载的,不能直接在浏览器里打开。Adobe认证跳转回来的URL必须是你Teams应用配置里的合法页面,而且域名要在Teams的白名单里。
  • 延长初始化超时时间:给app.initialize()加个超时参数,把时间调长一点,比如10秒:
    await app.initialize({ timeout: 10000 });
    
  • 核对SDK版本:你用的@microsoft/teams-js版本可能和示例不一样,旧版本是回调式API,新版本是Promise式,版本不匹配就容易出问题,尽量和示例用同一个版本。

问题2:示例代码不用await能运行的原因

示例用的大概率是旧版本的Teams SDK,旧版的app.initialize()是回调模式,不用await,初始化完成后会触发传入的回调函数,示例里的认证成功通知逻辑可能是放在这个回调里的,只是写法上没显式写出来。

另外,旧版SDK的authentication.notifySuccess可能会自动等待初始化完成,或者示例代码依赖SDK内部的全局状态,不需要显式等待。但新版本SDK改成了Promise式,必须用await或者.then()确保初始化完成后再调用后续方法,不然就会提示未初始化。


内容的提问来源于stack exchange,提问作者Michael S. Scherotter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:40:20