Звонок / мне / контакты / {id} / фото не возвращает eTag - PullRequest
1 голос
/ 12 апреля 2019

Я звоню me/contacts/{id}/photo, и ответы не соответствуют тому, что определено в документах .

Согласно документам, две вещи не соответствуют тому, что я вижу:

  1. Если у контакта нет фотографии, в нем говорится, что вы получите пустой платеж JSON, однако я получаю ответ 404 с этой ошибкой

    Code: ErrorItemNotFound
    Message: The specified object was not found in the store.
    
  2. Когда есть фотография для контакта, в статье говорится, что будет @odata.mediaEtag, однако полезная нагрузка, которую я получаю обратно, не имеет ее.Ниже мой ответ:

    (*map[string]interface {})(0xc42014a028)((len=5) {
     (string) (len=6) "height": (float64) 360,
     (string) (len=5) "width": (float64) 360,
     (string) (len=14) "@odata.context": (string) (len=243) "https://graph.microsoft.com/v1.0/$metadata#users('REDACTED')/contacts('REDACTED')/photo/$entity",
     (string) (len=23) "@odata.mediaContentType": (string) (len=10) "image/jpeg",
     (string) (len=2) "id": (string) (len=7) "360X360"
    })
    

Проблема № 1 не влияет на меня, так как я легко могу справиться с 404.Меня больше волнует проблема №2, так как я хотел бы etag, чтобы я мог отслеживать, было ли изображение изменено или нет, и загружать его только тогда, когда оно было изменено.

Мне удалось настроить OAuthзаставить работать API и успешно загружать контакты и фотографии, следуя документам, поэтому я не уверен, что мне не хватает.

1 Ответ

0 голосов
/ 15 апреля 2019

Разные конечные точки могут возвращать немного разные данные (т. Е. /me/photo против /me/{id}/photo против /groups/{id}/photo). Только свойства, в которых вы можете быть уверены, будут указаны profilePhoto resoruce:

{
  "id": "240X240",
  "height": 240,
  "width": 240
}

Вы можете использовать eTag для самого contact (изменение фотографии контакта в Outlook должно отображаться как изменение контакта) с помощью /me/contacts/{id}?$select=id,lastModifiedDateTime:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('{id}')/contacts(id,lastModifiedDateTime)/$entity",
    "@odata.etag": "W/\"EQAAABYAAAAiIsqMbYjsT5e/T7KzowPTAAAYc8Bf\"",
    "id": "{id}",
    "lastModifiedDateTime": "2017-09-04T15:54:02Z"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...