无法仅在一个帐户上扩展扩展

Failing to expand extensions on only one account

尝试 运行 只是一个基本的 https://graph.microsoft.com/v1.0/me?$expand=extensions 但是要么得到这个错误

Expected ',' instead of '{'

{"@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 的 ID,这样我就可以删除一些以腾出空间,因为我一定是不小心添加了太多,但我什至无法获得扩展名列表而且我做不到甚至通过 id 过滤它。与其他帐户一起使用时一切正常我想我一定是在玩弄它的时候把我的帐户弄脏了。有什么想法吗?

编辑

正在尝试查询 https://graph.microsoft.com/v1.0/me?$select=id,displayName&$expand=extensions

结果

{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,extensions)/$entity","id":"MY ID","displayName":"MY NAME","extensions@odata.context":"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"
    }
  }
}

所以我们的一位开发人员查看了数据,看起来您调用了 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 }

我们已经实施了一个修复程序来防止将来出现这种情况,该修复程序将于下周推出。

我们有您的扩展程序的 ID,因此您可以删除它们,但我们不确定如何安全地将这些信息传达给您。如果您同意我们在此线程中提供它们,请告诉我们。

希望这对您有所帮助,

我想我刚刚 运行 遇到了类似的问题。

我这样创建了我的扩展程序

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

但现在我无法再为我的帐户扩展 属性。

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"
            }
        }
    }
}

我遇到了同样的错误。我使用 Graph API lib.
最后,我能够以其他方式检索扩展名 - 使用 Users.Extensions 属性(我想这可以针对当前用户进行类比 - Me.Extensions).

我是这样添加扩展的:

    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];