使用Graph API创建的文件创建者总显示为Sharepoint App如何解决?
根因说明
- 你当前使用客户端凭据(ClientSecretCredential)获取令牌,属于无用户上下文的应用-only权限模式,该场景下SharePoint平台会固定为应用创建的DriveItem的
createdBy.user.displayName赋值为SharePoint App,属于设计默认行为。 - Teams文件列表的创建者列渲染逻辑优先读取
createdBy.user.displayName字段,不会读取createdBy.application下你配置的自定义应用名称,因此最终显示为固定的SharePoint App。 createdBy是系统保留的审计字段,禁止客户端自定义修改,所以你手动赋值的操作会被服务端直接忽略,该表现符合平台规则。
解决方案
- 优先改用委派权限模式:如果业务允许,换用带用户上下文的认证流(如资源所有者密码流、交互式认证流)模拟真实用户身份调用接口,创建的文件创建者会自动填充为该模拟用户的显示名称,正常在Teams中展示。
- 保留应用-only权限的改造方案:需要先为应用分配站点的Manage权限,文件创建完成后额外调用接口修改DriveItem对应ListItem的
Created_x0020_By字段值,修改后的内容会同步到Teams的创建者列。
内容的提问来源于stack exchange,提问作者Tomasz T.
相关产品推荐
相关产品推荐

