无法仅在一个帐户上展开扩展程序

时间:2017-05-17 22:57:39

标签: microsoft-graph

尝试只运行基本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我的帐户的ID,因此我可以删除一些以腾出空间,因为我必须意外添加太多,但我甚至无法获得扩展列表,我可以&#39 ;甚至按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"
    }
  }
}

3 个答案:

答案 0 :(得分:0)

所以我们的一个开发人员看了一下数据,看起来你错误地调用了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,因此您可以将其删除,但我们不确定如何安全地与您沟通。如果您对我们在此主题中提供这些内容感到满意,请告诉我们。

希望这有帮助,

答案 1 :(得分:0)

我想我遇到了类似的问题。

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

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

答案 2 :(得分:0)

我遇到了同样的错误。我使用图形 API 库。
最后,我能够以其他方式检索扩展 - 使用 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];