Office365 是否在所有文档中保存OfficeJS加载项状态?

Office365 是否在所有文档中保存OfficeJS加载项状态?,office365,office365api,office-js,office365-apps,Office365,Office365api,Office Js,Office365 Apps,我知道我可以使用document.settings保存每个文档的加载项状态 是否有一种方法可以跨文档为同一加载项保存状态(如活动许可证)?如何保存用户状态取决于您的需要 如果要跟踪每台机器的状态,可以将数据保存在中 如果要跟踪已登录用户的每个用户状态(无论他们使用什么计算机或文档),应将其用户ID和状态保存在数据库中。对于我自己的外接程序,我通过以下方式实现了此设计: 函数readUserStateSync(customerId,回调){ var myUserReference=firebase

我知道我可以使用document.settings保存每个文档的加载项状态


是否有一种方法可以跨文档为同一加载项保存状态(如活动许可证)?

如何保存用户状态取决于您的需要

如果要跟踪每台机器的状态,可以将数据保存在中

如果要跟踪已登录用户的每个用户状态(无论他们使用什么计算机或文档),应将其用户ID和状态保存在数据库中。对于我自己的外接程序,我通过以下方式实现了此设计:

函数readUserStateSync(customerId,回调){ var myUserReference=firebase.database().ref(“myCustomers/”+customerId); myUserReference.one('value')。然后(函数(userState){ 回调(userState.val()); }); } 函数writeUserStateSync(customerId、userState、回调){ var myUserReference=firebase.database().ref(“myCustomers”); myUserReference.child(customerId).set(userState,function(){callback(“success”);}); }
-Michael Saunders,Office加载项程序经理要补充Michael Saunders的回答:您还可以为已登录的Office用户(或者更具体地说,为获取加载项的用户标识)获取唯一ID:

我读了那个复杂的页面,但是有没有一种方法可以简单地使用JavaScript获取一个唯一的用户ID,这样我就可以将它发送到我的服务器?我的目标是在我的服务器上存储特定于用户的信息,以便用户可以跨不同的文档和主机使用这些信息,只要他们安装了外接程序。我不希望要求添加登录。@ExcelAnalyst,的“cid”字段是一个合理的使用价值。不过,有几个警告。a) 它有时可能是空的(如果外接程序是代表组织购买的,或者用户没有以某种方式使用Microsoft帐户登录)。b) 它不能保证永远保持不变(这就是验证返回ID的保证,而如果哈希算法发生变化,cid ID可能有一天会发生变化)。但是,当不是空的时候,它是同一个user.PS的一个很好的指示器:很清楚,上一个语句的相反部分不是真的。也就是说,不同的cid值不一定意味着不同的用户(可能是同一用户在足够长的时间内的不同哈希值)。但相同的CID值——我认为——将[几乎]永远意味着相同的用户。不过,如果您需要担保,则需要使用服务器端验证。另一个注意事项是:在Office 2016中,用户实际上可以匿名获取免费加载项。因此,在这些情况下,“cid”字段可能为空。