Невозможность расширить расширения только в одной учетной записи

Попытка запустить простой https://graph.microsoft.com/v1.0/me? $ expand = extensions Но либо получить эту ошибку

Ожидается ',' вместо '{'

с участием

{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity"{
  "error": {
    "code": "BadRequest",
    "message": "The entity instance value of type 'microsoft.graph.user' doesn't have a value for property 'id'. To compute an entity's metadata, its key and concurrency-token property values must be provided.",
    "innerError": {
      "request-id": "39759fbe-06ed-4176-8cc3-efe167a532cb",
      "date": "2017-05-17T22:47:35"
    }
  }
}

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

ИЗМЕНИТЬ

Выполнение запроса https://graph.microsoft.com/v1.0/me ? $ select = id, displayName & $ expand = расширения

приводит к

{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,extensions)/$entity","id":"MY ID","displayName":"MY NAME","[email protected]":"https://graph.microsoft.com/v1.0/$metadata#users('MY ID')/extensions","extensions":[{"@odata.type":"#microsoft.graph.openTypeExtension"{
  "error": {
    "code": "InternalServerError",
    "message": "Unsupported extension property type.",
    "innerError": {
      "request-id": "9fe3c7aa-f3d8-48be-90e4-b440516f9010",
      "date": "2017-05-17T23:14:46"
    }
  }
}

person Moon President    schedule 17.05.2017    source источник
comment
Можете ли вы попробовать запрос graph.microsoft.com/ v1.0 /? Я думаю, вам нужно $ выбрать поле идентификатора пользователя. Я также рекомендую вам попробовать образцы открытых расширений в Graph Explorer . Щелкните ссылку "Показать другие образцы" и установите флажок "Расширения".   -  person David    schedule 18.05.2017
comment
Пробовал это и поместил ответ как правку выше. На данный момент я пробовал почти все возможные способы запроса, как мне кажется. Есть ли способ просто очистить мои расширения? Спасибо за быстрый ответ :)   -  person Moon President    schedule 18.05.2017
comment
Спасибо, что сообщили об этом. Мы рассмотрим проблему и свяжемся с вами.   -  person Dan Kershaw - MSFT    schedule 18.05.2017
comment
Не беспокойтесь, есть ли какой-нибудь интерфейс, где вы можете увидеть данные openExtension?   -  person Moon President    schedule 18.05.2017


Ответы (3)


Итак, один из наших разработчиков взглянул на данные, и похоже, что вы неправильно вызывали API - это был действительный JSON, но не то, что наш сервис может обработать - особенно при обратном чтении.
Похоже, когда вы создавали открытое расширение, вы вставляли в полезную нагрузку следующее:

{ "openTypeExtension": { "@odata.type": "#Microsoft.Graph.Extensibility.openTypeExtension", "extensionName": "roaming.settings", "randvalue": 1 } }

Но бит openTypeExtension не требуется и отбрасывает нас при обратном чтении. Вы должны отправить:

{ "@odata.type": "#Microsoft.Graph.Extensibility.openTypeExtension", "extensionName": "roaming.settings", "randvalue": 1 }

Мы внедрили исправление, чтобы предотвратить это в будущем, которое будет выпущено на следующей неделе.

У нас есть идентификаторы ваших расширений, поэтому вы можете их удалить, но мы не знаем, как безопасно передать их вам. Если вы согласны с тем, что мы разместили их в этой теме, сообщите нам об этом.

Надеюсь это поможет,

person Dan Kershaw - MSFT    schedule 19.05.2017
comment
Да, не удивлен, что я звонил неправильно, я знаю, что делаю сейчас, поэтому надеюсь, что больше не буду делать ничего подобного. Но рад, что моя безнадежность может помочь кому-то другому совершить ту же ошибку. Если это не слишком большая проблема, не могли бы вы опубликовать идентификаторы в личной заметке privnote.com. Не уверен, насколько они важны. быть. Большое спасибо! - person Moon President; 19.05.2017
comment
privnote.com/iuCzRDew#5hyBxndSz - надеюсь, вы прочтете это раньше, чем кто-то другой. - person Dan Kershaw - MSFT; 19.05.2017

Думаю, я столкнулся с подобной проблемой.

Я создал свое расширение вот так

var ext = new OpenTypeExtension();
ext.ExtensionName = "[Unique Name]";
ext.AdditionalData = new Dictionary<string, object>();
ext.AdditionalData.Add("[settingName]", "[settingValue]");
await graph.Me.Extensions.Request().AddAsync(ext);

Но теперь я больше не могу расширять свойство extension для своей учетной записи.

var profile = await graph.Me
    .Request()
    .Expand("extensions")
    .GetAsync();

Это вызывает Microsoft.Graph.ServiceException:

Code: generalException Message: Unexpected exception returned from the service.

Когда я пытаюсь сделать запрос в проводнике графиков, я получаю следующий ответ:

{
    "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity"
    {
        "error": {
            "code": "BadRequest",
            "message": "The entity instance value of type 'microsoft.graph.user' doesn't have a value for property 'id'. To compute an entity's metadata, its key and concurrency-token property values must be provided.",
            "innerError": {
                "request-id": "5e3887db-1687-461a-8d5c-da0f34eea83b",
                "date": "2018-06-01T01:41:12"
            }
        }
    }
}
person Dave    schedule 01.06.2018

У меня такая же ошибка. Я использую Graph API lib.
Наконец, мне удалось получить расширение другим способом - с помощью свойства Users.Extensions (я думаю, это можно сделать с текущим пользователем аналогично - Me. Расширения).

Я добавил расширение таким образом:

    var additionalData = new Dictionary<string, object> { { "DataName", value } };

    await graph.Users["userId"]
               .Extensions
               .Request()                
               .AddAsync(new OpenTypeExtension { ExtensionName = "uniqueExtensionName",  AdditionalData = additionalData });

..и получение:

    var extensionObject = ( await graph.Users["userId"].Extensions.Request().GetAsync() )
                                .CurrentPage[0];
person Bronek    schedule 13.01.2021