尝试使用用户配置文件 REST 访问用户属性 API

Try to access user properties using User Profile REST API

我正在为我的 SharePoint Online 网站创建一个 SP 设计器工作流程,以获取用户属性,如经理的姓名、位置、部门等。我在 'Call HTTP Web Service' 操作中使用下面的 REST URL

https:/siteurl/_api/SP.UserProfiles.PeopleManager/GetUserProfilePropertyFor(accountName=@v,propertyName='Manager')?@v=%27i:0%23.f|membership|userid%27 .

我是网站集管理员,但我仍然遇到错误 -

"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Access denied. You do not have permission to perform this action or access this resource."}}}"

我已经授予工作流应用程序完全控制权。但是当我在浏览器中访问上面的 REST URL 时,我可以看到任何用户的所有属性。

请告诉我我哪里做错了。

工作流必须 tenant-level permissions(In your case-Read) 才能访问用户配置文件服务而不是完全控制网站集

授予权利时确保使用以下 XML :

<AppPermissionRequests>
    <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="Read" />
</AppPermissionRequests>

这里有有用的链接

我使用 SP designer 2013 中提供的 SP 2010 工作流模板创建了一个工作流。在这个模板中,我可以直接查询用户配置文件并从用户配置文件中获取所需的属性。 参考 - http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-start-a-sharepoint-2010-workflow-within-a-sharepoint/

使用此选项不需要任何租户级别的访问权限。

干杯