Ho utilizzato discourse-oauth2-basic per permettere ai nostri membri di accedere e popolare automaticamente i campi email, nome completo e nome utente dai loro account organizzativi Office365. Tuttavia, sto avendo difficoltà a far apparire l’avatar e mi chiedevo se qualcuno abbia avuto successo in questo.
Le linee guida di Graph qui suggeriscono che l’URL per l’avatar dovrebbe essere disponibile in photo/$value; l’ho inserito ma non viene restituito e non vedo errori nei log.
…Ho anche provato ad aggiungere ‘photo’ nei campi oauth2 callback user info paths e oauth2 authorize options, ma senza successo. Qualsiasi aiuto è molto apprezzato
Il plugin OAuth2 consente di richiedere dati da un solo endpoint (l’oauth2 user json url). Tutte le impostazioni json *** path si riferiscono a posizioni all’interno dei dati JSON, non a endpoint API separati.
Quindi, purtroppo, credo che sarebbe necessario sviluppare un plugin di autenticazione personalizzato per far funzionare questa cosa . Mi piacerebbe però essere smentito!
Grazie per averlo verificato, @david. Mi ha spinto a vedere se potevo ‘recuperarlo’ nel JSON dell’utente. Sembra che il parametro di query OData expand non sia supportato per la foto, anche se viene restituita come URL se ci si aggiunge /$value:
…non puoi usare $expand sulla relazione user/photo.
Non sono riuscito a trovare un modo per invertire la cosa; quindi, invece di https://graph.microsoft.com/beta/me?$expand=photo, qualcosa come https://graph.microsoft.com/beta/me/photo/$value?$expand=mail,displayName. Sbuffo, gioco finito, sfogo.
Forse potremmo usare la posizione ‘mail’ nei dati JSON per costruire l’URL della foto, che è costantemente:
…o forse un altro modo - sto chiaramente aggrappandomi a pagliuzze - sarebbe aggiungere l’endpoint della foto al campo URL json dell’utente oauth2 con qualcosa come: