Невозможно получить фото через API, который возвращает 404 - PullRequest
0 голосов
/ 09 октября 2018

Когда я пытался получить фотографию с помощью Graph Explorer , он хорошо работал с использованием примера учетной записи.

Но когда я вхожу в свою учетную запись, она не работает.

Когда я запрашиваю:

https://graph.microsoft.com/v1.0/me/contacts/{Id}/photo/$value

Возвращает:

{
    "error": {
        "code": "ErrorItemNotFound",
        "message": "The specified object was not found in the store.",
        "innerError": {
            "request-id": "ad665ca9-9585-4f7a-9dd1-803061d8baba",
            "date": "2018-10-09T15:55:54"
        }
    }
}

Я не знаю причину, это смутило меня.

1 Ответ

0 голосов
/ 10 октября 2018

При вызове /v1.0/me/contacts/{id}/photo/$value будет возвращена только фотография, если она существует (то есть фотография была добавлена ​​в контакт в Outlook).Если фотография не была добавлена, она выдаст исключение HTTP 404 - Not Found.

Вместо обработки исключения вы можете проверить наличие фотографии, сначала позвонив по номеру /v1.0/me/contacts/{id}/photo/.Если фотография была прикреплена.это вернет метаданные для прикрепленной фотографии (mediaContentType, height, width).Если результаты возвращаются пустыми, значит, вы не можете найти фотографию.

Имейте в виду, что Outlook сам тянет фотографии профиля из разных мест.Например, если к контакту не прикреплено изображение, и они являются частью одной организации, Outlook попытается извлечь фотографию из учетной записи контакта.Вы можете повторить эту функцию, если вы запросили область действия User.ReadBasic.All.

Вместе процесс будет примерно таким:

  1. Звонок /v1.0/me/contacts/{id}/photo/

  2. Если изображение существует, позвоните/v1.0/me/contacts/{id}/photo/$value чтобы получить изображение.Если нет, продолжайте.

  3. Используя emailAddress из Контакта, позвоните /v1.0/users/{emailAddress}/photo

  4. Если изображение существует, позвоните /v1.0/users/{emailAddress}/photo/$value для получения изображения.Если нет, то изображение недоступно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...