J’ai utilisé discourse-oauth2-basic pour permettre à nos membres de se connecter et de pré-remplir automatiquement leurs valeurs d’e-mail, de nom complet et d’identifiant à partir de leur compte organisationnel Office365. Cependant, je rencontre des difficultés pour faire apparaître l’avatar et je me demandais si quelqu’un avait déjà réussi à le faire.
La documentation Graph ici suggère que l’URL de l’avatar devrait être disponible à l’adresse photo/$value ; je l’ai bien indiquée, mais elle n’est pas retournée et je ne vois aucune erreur dans les journaux.
…J’ai également essayé d’ajouter ‘photo’ dans les champs oauth2 callback user info paths et oauth2 authorize options, mais sans succès. Toute aide serait grandement appréciée
Le plugin OAuth2 ne permet de demander des données qu’à partir d’un seul point de terminaison (l’URL JSON de l’utilisateur OAuth2). Tous les paramètres json *** path font référence à des emplacements dans les données JSON, et non à des points de terminaison API distincts.
Donc, malheureusement, je pense que vous devrez développer un plugin d’authentification personnalisé pour que cela fonctionne . J’aimerais beaucoup être démenti !
Merci d’avoir vérifié cela, @david. Cela m’a poussé à voir si je pouvais « récupérer » cela dans le JSON de l’utilisateur. Il semble que le paramètre de requête OData expand ne soit pas pris en charge pour la photo, bien qu’elle soit bien présente sous forme d’URL si vous ajoutez /$value à la fin :
…vous ne pouvez pas utiliser $expand sur la relation user/photo.
Je n’ai pas réussi à trouver un moyen d’inverser cela ; donc au lieu de https://graph.microsoft.com/beta/me?$expand=photo, j’aurais voulu quelque chose comme https://graph.microsoft.com/beta/me/photo/$value?$expand=mail,displayName. Soupir, crise de colère, j’enrage.
Peut-être pourrions-nous utiliser l’emplacement « mail » dans les données JSON pour construire l’URL de la photo, qui est toujours :
…donc pourrions-nous concaténer les trois éléments du champ avec la bonne syntaxe ? Ma tentative de novice ici n’a pas fonctionné, ce qui n’est pas surprenant :
…ou peut-être une autre méthode – je cherche clairement une aiguille dans une botte de foin ici – consisterait à ajouter le point de terminaison photo au champ URL JSON de l’utilisateur oauth2 avec quelque chose comme :