如何通过Smartsheet API为用户设置并保存Locale属性?
关于Smartsheet API批量设置用户Locale属性的解决方案
当前API约束
- 调用
AddUser接口创建用户时,传入的User对象不包含Locale属性,无法在创建阶段直接指定用户区域设置 - 唯一的用户更新接口
UpdateUser仅接受无Locale属性的User对象,无法通过该接口修改已创建用户的Locale
可行解决方案
- 控制台批量导入:若业务场景允许,可通过Smartsheet管理控制台的批量导入功能,上传包含
Locale列的CSV文件完成用户创建,该方式原生支持直接设置Locale属性 - 提交功能请求:若必须通过C#代码实现,可向Smartsheet官方提交功能请求,要求在
AddUser或UpdateUser接口中添加Locale属性的支持 - 内部数据同步替代:如果仅需在自有系统中维护用户Locale信息,可将获取到的
UserProfile对象(含Locale)存储到内部数据库,但此方式无法同步修改Smartsheet端的用户Locale设置
代码示例(现状演示)
创建用户(无法指定Locale):
var newUser = new User { Email = "user@example.com", FirstName = "John", LastName = "Doe", LicensedSheetCreator = false // 标记为无许可用户 }; // 调用AddUser接口创建用户 var createdUser = smartsheetClient.Users.AddUser(newUser, sendEmail: false);
获取UserProfile(仅可读取Locale,无法保存修改):
// 获取包含Locale的UserProfile var userProfile = smartsheetClient.Users.GetUser(createdUser.Id); // 修改Locale仅在本地对象生效,无法通过API同步到Smartsheet userProfile.Locale = "zh-CN"; // 尝试调用UpdateUser会失败,因为接口仅接受User类型参数 // smartsheetClient.Users.UpdateUser(userProfile); // 此代码会报错
内容的提问来源于stack exchange,提问作者gilesrpa
相关产品推荐
相关产品推荐

