【问题标题】:Excel: TypeScript Get Username or Email AddressExcel:TypeScript 获取用户名或电子邮件地址
【发布时间】:2023-01-25 02:10:09
【问题描述】:

由于工作从 Google Suite 转移到 Microsoft 已经开始学习 Typescript 的基础知识。以前达到了与 VBA 相同的成绩。在阅读了几个论坛后,我想知道是否有人知道如何简单地获取使用在线 Excel 工作表的用户名或电子邮件地址?以前的 VBA 代码很简单:

dim username as string
username = Application.Username

然后这个变量可以在 A1 中设置一个值。

热烈欢迎任何建议。

最好的祝愿,

【问题讨论】:

    标签: typescript office365 office-js office-addins excel-web-addins


    【解决方案1】:

    Office JavaScript API 不提供任何开箱即用的属性或方法。但是您可以考虑从用于 SSO 的访问令牌 (JWT) 中检索所需的信息,查看以下代码:

    async function getUserData() {
        try {
            let userTokenEncoded = await OfficeRuntime.auth.getAccessToken();
            let userToken = jwt_decode(userTokenEncoded); // Using the https://www.npmjs.com/package/jwt-decode library.
            console.log(userToken.name); // user name
            console.log(userToken.preferred_username); // email
            console.log(userToken.oid); // user id     
        }
        catch (exception) {
            if (exception.code === 13003) {
                // SSO is not supported for domain user accounts, only
                // Microsoft 365 Education or work account, or a Microsoft account.
            } else {
                // Handle error
            }
        }
    }
    

    如果加载项加载到不支持 SSO 的旧版 Office,getAccessToken 调用将失败。对于 Excel、Word 和 PowerPoint 加载项,您通常希望回退到使用 Microsoft 标识平台。有关详细信息,请参阅Authenticate with the Microsoft identity platform

    有关详细信息,请参阅Enable single sign-on (SSO) in an Office Add-in

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 2015-10-12
      • 2015-01-23
      • 1970-01-01
      相关资源
      最近更新 更多