Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 api Outlook联系人在您将其移动到其他文件夹时会更改其ID_Microsoft Graph Api_Outlook Restapi_Microsoft Contracts - Fatal编程技术网

Microsoft graph api Outlook联系人在您将其移动到其他文件夹时会更改其ID

Microsoft graph api Outlook联系人在您将其移动到其他文件夹时会更改其ID,microsoft-graph-api,outlook-restapi,microsoft-contracts,Microsoft Graph Api,Outlook Restapi,Microsoft Contracts,我对Microsoft Graph Rest API有问题。我已经写了一个程序,应该从Outlook中读取联系人,然后一次又一次地匹配他们。为此,我使用联系人记录中的ID。我的程序读取所有文件夹并获取所有联系人的必要信息。到目前为止,这种方法效果很好 现在我意外地遇到了一个问题,因为Outlook中联系人的ID可能会更改,因此我丢失了对外部数据集的引用 下面的案例给我带来了问题 我在Outlook中创建联系人。此联系人在通过Rest API读取后有一个ID {@odata.etag':'W/“e

我对Microsoft Graph Rest API有问题。我已经写了一个程序,应该从Outlook中读取联系人,然后一次又一次地匹配他们。为此,我使用联系人记录中的ID。我的程序读取所有文件夹并获取所有联系人的必要信息。到目前为止,这种方法效果很好

现在我意外地遇到了一个问题,因为Outlook中联系人的ID可能会更改,因此我丢失了对外部数据集的引用

下面的案例给我带来了问题

  • 我在Outlook中创建联系人。此联系人在通过Rest API读取后有一个ID
  • {@odata.etag':'W/“eqaabyaaadqyc40bfr0rzdgywtzcdwaadu40xu”,'id':'aamkade4mwmwoty4ltm2odantdayzs1izdgwwyje3ntu2u4oabgaaaacyta-jK-bat5lfw8nopjybwdqyc40bfr0rzdgywtzcdwaadcw0u2aadqbfy0rzdzdjjjjjwzcdzcdzcdzcdwaadvcep-AAA=','displayName','Max'>

  • 我使用联系人的“移动到”选项将其移动到另一个文件夹。在此之后,此联系人具有不同的ID
  • {@odata.etag':'W/“eqaabyaaadqyc40bfr0rzdgywtzcdwaadu40yp”,'id':'aamkade4mwmwoty4ltm2odatndayz1gwwyje3ntu2u4oabgaaacyta-jK-bat5lfw8nopjybwdqyc40bfr0rzdgywtzcwaadvchywaadvqc40bfr0rzdgyzcdgyzcdgyzcdjcdzcdwaadvc3aa=','displayName','displayName','Max'Max Mustermann'>

    有谁能告诉我如何预防这种情况吗。。。或者有没有办法读取联系人的旧ID

    也许有人能解释一下,如果我将联系人移动到文件夹中,为什么ID会发生变化


    欢迎提供任何帮助。

    原因如下:

    Outlook项目(消息、事件、联系人、任务)有一个有趣的行为,您可能从未注意到,或者已经让您感到非常沮丧:它们的ID发生了变化。这种情况并不经常发生,只有在项目被移动的情况下才会发生,但对于离线存储ID供以后使用的应用程序来说,这可能会造成实际问题。不可变标识符使您的应用程序能够获得在项目的生命周期内不会更改的ID

    以及解决方案:

    不可变ID是Microsoft Graph的可选功能。要选择加入,应用程序需要在API请求中发送额外的HTTP头:

    首选:IdType=“ImmutableId”

    此标头仅适用于它所包含的请求。如果希望始终使用不可变ID,则必须在每个API请求中包含此标头


    您能显示相关代码吗?还是复制一个卷曲片段?从我所看到的联系人中没有
    move