我为Office 365创建了一个sharepoint托管应用,我想更新用户配置文件属性。我用了这段代码:
var clientContext = new SP.ClientContext.get_current();
var peopleManager = new SP.UserProfiles.PeopleManager(clientContext);
peopleManager.setSingleValueProfileProperty(targetUser, "Activite", $("#txt_Activite").val());
context.executeQueryAsync(function () {
//editeProfil();
window.parent.location = hostweburl + "/Pages/MONPROFIL.aspx?&UserTarget=" + targetUser;
}, onFail);
function onFail(data, args)
{
console.log(args.get_message());
}
当我想编辑我的个人资料属性时,没关系,但是对于其他用户个人资料,我有这个错误:
Access denied
我使用的是管理员帐户。
答案 0 :(得分:0)
这是因为上下文对象来自正常的网站集(当前)。如果为-admin站点创建上下文,那么它将起作用。
例如,如果您的租户名称为test,则您的上下文应来自https://test-admin.sharepoint.com,我相信它会起作用。
我在CSOM上对此进行了测试,但我相信它也适用于JSOM。
此致 JAG