Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.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
C# REST API更改Azure Active Directory用户配置文件图片_C#_Rest_Azure Active Directory_Microsoft Graph Api_Microsoft Graph Teams - Fatal编程技术网

C# REST API更改Azure Active Directory用户配置文件图片

C# REST API更改Azure Active Directory用户配置文件图片,c#,rest,azure-active-directory,microsoft-graph-api,microsoft-graph-teams,C#,Rest,Azure Active Directory,Microsoft Graph Api,Microsoft Graph Teams,我正在使用请求表单参数获取Graph API的访问令牌 {"username", email }, { "password", password }, { "grant_type", "password" }, { "client_id", ClientId }, { "scope&quo

我正在使用请求表单参数获取Graph API的访问令牌

  {"username", email },
            { "password", password },
            { "grant_type", "password" },
            { "client_id", ClientId },
            { "scope", scope },
            { "response_type", "id_token" }
我正在获取访问令牌,之后我将点击此API:

早些时候,我得到了回应

{
  "error": {
    "code": "OrganizationFromTenantGuidNotFound",
    "message": "The tenant for tenant guid 'tenant id' does not exist.",
    "innerError": {
      "requestId": "b3ea4878-1234-49be-bc66-c49aa224f9e6",
      "date": "2020-08-23T07:28:21",
      "request-id": "b3ea4878-1234-49be-bc66-c49aa224f9e6"
    }
  }
}
之后,我登录MS Teams应用程序并重试,响应更改为

{
  "error": {
    "code": "ResourceNotFound",
    "message": "Resource could not be discovered.",
    "innerError": {
      "date": "2020-08-23T11:03:49",
      "request-id": "c675a441-1234-4c29-9de0-7a5530b2fa53"
    }
  }
}
我尝试在GraphAPI浏览器和Postman中调用RESTAPI,结果是一样的

然后,我尝试使用outlook API。 反应是

{
    "error": {
        "code": "MailboxNotEnabledForRESTAPI",
        "message": "REST API is not yet supported for this mailbox."
    }
}
未为用户启用邮箱,因此邮件已被理解。但我想知道,是否有任何方法可以更改azure active directory中用户的配置文件图片。并且用户只使用ms团队。如果我从微软团队应用程序中更改图片,它会反映所有地方,如团队应用程序、广告用户页面或Microsoft帐户设置页面。我想要这样的东西,改变代码中的图片,它反映了所有地方的变化


感谢您调用2个Microsoft Graph端点
https://graph.microsoft.com/v1.0/users/emailid/photo/$value
https://outlook.office.com/api/v2.0/me/photo/$value
,您需要O365订阅和Exchange联机许可证

看起来您没有这些许可证(可能您有O365订阅,但没有Exchange Online许可证),因此出现了错误。因此,您不能使用Microsoft Graph API更新图片

MS团队和Azure门户正在使用当前未公开的其他内部API来更新图片

除此之外,根据我的测试,即使我在使用Microsoft Graph更新用户配置文件图片时使用Exchange Online许可证订阅了O365,它也只会反映在O365门户和AAD门户上,不会改变MS团队中的用户配置文件图片。但当我从微软团队应用程序中更改图片时,它会像你们提到的那个样到处反映

如果我使用MicrosoftGraphAPI,我不确定它是否会在一段时间后对Microsoft团队生效。但微软团队应用程序对图片的修改会立即在其他地方生效

我还尝试使用来更新它。但是,尽管它返回的是
204无内容
,但图片在任何地方都不会改变(O365和Azure AD)

唯一官方公开的API应该是Microsoft Graph API。但正如我所解释的,它也有一些局限性


如果您对MS团队使用的内部API感兴趣,您可以使用Fiddler4捕获它以进行更多调查。

感谢您的详细回复并涵盖了我提到的所有要点。现在看来,没有真实的方法来更新图片。我也检查了团队的内部api,但获得令牌本身并不容易。@mayank.karki您是对的。因为它是内部api,恐怕处理令牌很困难。如果我的回答对你有帮助,你可以接受它作为答案。非常感谢。