Я использовал discourse-oauth2-basic, чтобы позволить нашим участникам входить в систему и автоматически заполнять значения электронной почты, полного имени и имени пользователя из их организационной учётной записи Office365. Однако у меня возникают трудности с заполнением аватара, и я хотел бы узнать, добился ли кто-нибудь успеха в этом?
В рекомендациях по Graph здесь указывается, что URL для аватара должен быть доступен по адресу photo/$value; я указал его, но данные не возвращаются, и в логах я не вижу никаких ошибок.
…Я также пробовал добавить ‘photo’ в поля oauth2 callback user info paths и oauth2 authorize options, но безрезультатно. Любая помощь будет очень кстати
Плагин OAuth2 позволяет запрашивать данные только с одной конечной точки (URL-адрес JSON-данных пользователя OAuth2). Все настройки json *** path относятся к местоположениям внутри JSON-данных, а не к отдельным конечным точкам API.
Спасибо, что проверили это, @david. Это побудило меня посмотреть, можно ли «получить» его в пользовательский JSON. Похоже, что параметр запроса расширения OData не поддерживается для фотографии, хотя она и возвращается в виде URL, если добавить к нему /$value:
…вы не можете использовать $expand для связи user/photo.
Мне не удалось найти способ это обойти; поэтому вместо https://graph.microsoft.com/beta/me?$expand=photo я пытался что-то вроде https://graph.microsoft.com/beta/me/photo/$value?$expand=mail,displayName. Раздражение, бросание игрушек из кроватки, жалобы.
Возможно, мы могли бы использовать поле «mail» в данных JSON для построения URL-адреса фотографии, который всегда имеет вид:
…или, возможно, другой способ — я явно хватаюсь за соломинку — заключался бы в добавлении конечной точки фотографии к полю URL oauth2 user json с чем-то вроде: