Nano Hash - криптовалюты, майнинг, программирование

Получить расширенное свойство Microsoft graph javascript api

Я назначил расширенное свойство моему основному календарю, и я пытаюсь получить его, но я не заставляю его работать.

Следующие документы: graph api и javascript sdk

function postUserCalendar(emailAddress) {
var rand = guid();
const values = {
  MultiValueExtendedProperties: [{
    PropertyId: 'StringArray ' + '{' + rand + '}' + ' Name Palette',
    Value: ["Green", "Aqua", "Blue"]
  }]
};
getAccessToken(function(accessToken) {
  if (accessToken) {
    var client = MicrosoftGraph.Client.init({
      authProvider: (done) => {
        done(null, accessToken);
      }
    });
    client
      .api('me/calendars/myCalendarId')
      .header('Accept','application/json')
      .patch({
        message: values
      }, (err, res) => {
        console.log(err);
        console.log(res);
      });
  } else {
    var error = {
      responseText: "Cound not retrieve access token"
    };

  }
 });
}

Выше моя функция для установки MultiValueExtendedProperties. Затем у меня есть функция, в которой я пытаюсь получить эти свойства.

  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);
  }
 });
}

Запрос на получение имеет статус 200, но я получаю ошибку jquery "a не определен"

Если кто-то может указать мне в правильном направлении, я был бы признателен.

Спасибо!


Ответы:


1

В вашем коде есть несколько ошибок, которые вызывают проблемы.

Исправление календаря

Здесь вы передаете {message: values} в качестве первого параметра patch, что приводит к передаче неправильного JSON в полезной нагрузке. Вы должны просто передать сами значения, которые будут правильно сериализованы:

client
    .api('me/calendars/myCalendarId')
    .header('Accept','application/json')
    .patch(values, (err, res) => {
        console.log(err);
        console.log(res);
     });

Получение календаря с развернутым ресурсом

Здесь вы не хотите использовать метод filter из SDK. Это добавляет предложение фильтра в GET вместо добавления фильтра в expand, что вам и нужно. Вместо этого вставьте фильтр в строку, переданную 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);
        }
    });

Рассмотрите возможность использования открытых расширений

Мы рекомендуем использовать открытые расширения для хранения data вместо устаревших расширенных свойств. Открытые расширения более гибкие и с ними проще работать. Если нет какой-то веской причины, по которой вам нужно, чтобы это было устаревшее свойство (например, обратная совместимость с существующим решением и т. д.), я бы рекомендовал открытые расширения.

30.05.2017
  • Спасибо тебе за это! Я посмотрю на открытые расширения! 31.05.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..