Usei o discourse-oauth2-basic para permitir que nossos membros façam login e que os valores de e-mail, nome completo e nome de usuário sejam preenchidos automaticamente a partir da conta organizacional do Office365. Estou com dificuldade para popular o avatar, no entanto, e gostaria de saber se alguém teve sucesso ao fazer isso.
A orientação do Graph aqui sugere que a URL do avatar deve estar disponível em photo/$value; que eu inseri, mas ela não está sendo retornada e não consigo ver nenhum erro nos logs.
…Também tentei adicionar ‘photo’ nos campos oauth2 callback user info paths e oauth2 authorize options, mas sem sucesso. Qualquer ajuda será muito apreciada
O plugin OAuth2 permite apenas a solicitação de dados de um único endpoint (a oauth2 user json url). Todas as configurações json *** path referem-se a localizações dentro dos dados JSON, não a endpoints de API separados.
Portanto, infelizmente, acredito que você precisaria desenvolver um plugin de autenticação personalizado para fazer isso funcionar . Mas adoraria ser contradito!
Obrigado por verificar isso, @david. Isso me fez pensar se eu poderia ‘buscar’ isso no JSON do usuário. Parece que o parâmetro de consulta de expansão OData não é suportado para a foto, embora ela seja retornada como uma URL se você adicionar /$value a ela:
…você não pode usar $expand na relação user/photo.
Não consegui encontrar uma maneira de inverter isso; então, em vez de https://graph.microsoft.com/beta/me?$expand=photo virar algo como https://graph.microsoft.com/beta/me/photo/$value?$expand=mail,displayName. Suspiro, brinquedos fora do berço, reclamação.
Talvez pudéssemos usar o local ‘mail’ nos dados JSON para construir a URL da foto, que é consistentemente:
…ou talvez outra maneira — estou claramente me agarrando a palhas aqui — seria adicionar o endpoint da foto ao campo URL do JSON do usuário oauth2 com algo como: