Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Microsoft graph javascript api的扩展属性_Javascript_Jquery_Microsoft Graph Api - Fatal编程技术网

获取Microsoft graph javascript api的扩展属性

获取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

我已将扩展属性分配给我的主日历,我正在尝试检索该属性,但无法使其正常工作

我下面的文档是和

上面是我设置多值ExtendedProperties的函数。 然后我有一个函数,我试图检索这些属性

  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);
        }
    });
考虑改用开放扩展


我们建议使用来存储自定义数据,而不是传统的扩展属性。开放式扩展更灵活,更易于使用。除非有令人信服的理由需要它成为一个遗留属性,如与现有解决方案向后兼容等,否则我建议使用开放扩展。

谢谢!我将有一个开放的扩展看看!谢谢你!我将有一个开放的扩展看看!