获取Microsoft graph javascript api的扩展属性
我已将扩展属性分配给我的主日历,我正在尝试检索该属性,但无法使其正常工作 我下面的文档是和 上面是我设置多值ExtendedProperties的函数。 然后我有一个函数,我试图检索这些属性获取Microsoft graph javascript api的扩展属性,javascript,jquery,microsoft-graph-api,Javascript,Jquery,Microsoft Graph Api,我已将扩展属性分配给我的主日历,我正在尝试检索该属性,但无法使其正常工作 我下面的文档是和 上面是我设置多值ExtendedProperties的函数。 然后我有一个函数,我试图检索这些属性 function getUserCalendar(emailAddress, callback) { getAccessToken(function(accessToken) { if (accessToken) { // Create a Graph client var clie
function getUserCalendar(emailAddress, callback) {
getAccessToken(function(accessToken) {
if (accessToken) {
// Create a Graph client
var client = MicrosoftGraph.Client.init({
authProvider: (done) => {
// Just return the token
done(null, accessToken);
}
});
client
.api('/me/calendars/myCalendarId')
.header('X-AnchorMailbox', emailAddress)
.expand('multiValueExtendedProperties')
.filter('id eq {c56fe371-87fb-87a8-1727-9b2b272b9f76}')
.get((err, res) => {
if (err) {
callback(null, err);
} else {
callback(res.value);
}
});
} else {
var error = {
responseText: 'Could not retrieve access token'
};
callback(null, error);
}
});
}
get请求的状态为200,但我得到一个jquery错误,未定义
如果有人能给我指出正确的方向,我将不胜感激
谢谢 您的代码中存在一些导致问题的错误 修补日历 这里您将{message:values}作为第一个参数传递给patch,这会导致在有效负载中传递不正确的JSON。您应该只传递值本身,这将正确序列化:
client
.api('me/calendars/myCalendarId')
.header('Accept','application/json')
.patch(values, (err, res) => {
console.log(err);
console.log(res);
});
正在使用展开的属性获取日历
在这里,您不想使用SDK中的filter方法。这将向GET添加一个filter子句,而不是向expand添加一个过滤器,这正是您所需要的。相反,将筛选器嵌入传递到展开的字符串中,如下所示:
client
.api('/me/calendars/myCalendarId')
.header('X-AnchorMailbox', emailAddress)
.expand("multiValueExtendedProperties($filter=id%20eq%20'StringArray%20{66f5a359-4659-4830-9070-00050ec6ac6e}%20Name%20Palette')")
.get((err, res) => {
if (err) {
callback(null, err);
} else {
callback(res);
}
});
考虑改用开放扩展
我们建议使用来存储自定义数据,而不是传统的扩展属性。开放式扩展更灵活,更易于使用。除非有令人信服的理由需要它成为遗留属性,如与现有解决方案向后兼容等,否则我建议使用开放扩展。您的代码中存在一些导致问题的错误 修补日历 这里您将{message:values}作为第一个参数传递给patch,这会导致在有效负载中传递不正确的JSON。您应该只传递值本身,这将正确序列化:
client
.api('me/calendars/myCalendarId')
.header('Accept','application/json')
.patch(values, (err, res) => {
console.log(err);
console.log(res);
});
正在使用展开的属性获取日历
在这里,您不想使用SDK中的filter方法。这将向GET添加一个filter子句,而不是向expand添加一个过滤器,这正是您所需要的。相反,将筛选器嵌入传递到展开的字符串中,如下所示:
client
.api('/me/calendars/myCalendarId')
.header('X-AnchorMailbox', emailAddress)
.expand("multiValueExtendedProperties($filter=id%20eq%20'StringArray%20{66f5a359-4659-4830-9070-00050ec6ac6e}%20Name%20Palette')")
.get((err, res) => {
if (err) {
callback(null, err);
} else {
callback(res);
}
});
考虑改用开放扩展
我们建议使用来存储自定义数据,而不是传统的扩展属性。开放式扩展更灵活,更易于使用。除非有令人信服的理由需要它成为一个遗留属性,如与现有解决方案向后兼容等,否则我建议使用开放扩展。谢谢!我将有一个开放的扩展看看!谢谢你!我将有一个开放的扩展看看!