Microsoft Teams 客户端 SDK 没有 运行 getContext 回调

Microsoft Teams Client SDK does not run getContext callback

我已尝试使用 Microsoft Teams 客户端 SDK 来访问选项卡的当前上下文。到目前为止,我还无法获得 运行 的 getContext 回调,更不用说 return 我可以以任何有意义的方式使用的上下文。

我尝试通过嵌入脚本创建一个使用客户端 SDK 的静态 html 页面,然后记录对象的上下文。 SDK 正确地 returns 一个预期形状的对象,但使用 initialize() 然后 getContext() 什么都不做。我正在将此网站作为 Microsoft 团队内部的一个选项卡,创建一个新选项卡并将其设为网站选项卡。

<p>hello World!</p>
<script src="https://statics.teams.microsoft.com/sdk/v1.4.2/js/MicrosoftTeams.min.js" crossorigin="anonymous"></script>
<script>

console.log(microsoftTeams);
microsoftTeams.initialize();
microsoftTeams.getContext((context) => console.log(context));

</script>

这是我用来尝试将上下文注销到控制台的静态页面。

const http = require("http");
const fs = require("fs");

this.html;
fs.readFile("./src/index.html", (err, html) => {
    if (err) {
        throw new Error(err);
    } else {
        this.html = html;
    }
})

http.createServer((req, res) => {
    res.write(this.html);
    res.end();
}).listen(7777);

这是我用来 return 静态 html

的服务器

我正在使用 ngrok 在端口 7777 上提供从 Web 到我的本地服务器的隧道。我可以让页面加载得很好,但还没有让 getContext() 到 运行我的回调函数。

我希望能够在 getContext() 函数的回调中获取团队选项卡的上下文,但该函数永远不会 运行s。

移动评论部分的答案:

使用默认网站应用程序创建的选项卡无法获取 Teams 上下文,它需要是受信任的 URL。您需要 build custom Tab to get context Microsoft Teams 选项卡。

请查看使用 App Studio 创建 Teams 应用程序清单的步骤。

在默认应用程序中指定 Hello World with Node.js 如果您将此脚本放在 body 标记的末尾。

console.log(microsoftTeams);
microsoftTeams.initialize();
microsoftTeams.getContext((context) => console.log(context));

现在您必须在 Teams 环境中 运行 这个应用程序,只有这样这个上下文方法才会获得一个值,而不是在常规 html 页面上。