Avatar off-site via API?

Ho un sito Rails per la community. Sto utilizzando SSO in modo che i membri della community non debbano accedere separatamente a Discourse e sto usando l’API di Discourse per facilitare lo scambio di informazioni tra i due server. Ora vorrei unificare gli avatar degli utenti, ovvero utilizzare lo stesso avatar sul forum e sul mio sito principale. Come posso farlo?

Ho provato quello che faccio di solito per le richieste API, ovvero una richiesta POST Faraday a https://discuss.diem25.org/uploads.json con chiave API e API-Username nell’intestazione e il seguente corpo:

{ 
          "type": "avatar", 
          "user_id": user_id,
          "file": "https://internal.diem25.org/.../user.jpg",
          "synchronous": "true"
        }

Questa richiesta restituisce un errore Internal Server Error. Non sono contrario a ricaricare il file come ultima risorsa, ma sembra essere difficile o impossibile a prima vista, utilizzando Faraday.

1 Mi Piace

Perché non provare l’impostazione del sito sso overrides avatar e passare l’URL dell’avatar tramite il sistema SSO? Potrebbe essere più efficace gestire questa operazione con l’SSO piuttosto che caricare manualmente gli avatar tramite l’API.

5 Mi Piace

Grazie, è un’ottima idea, ma pone semplicemente il problema dell’integrazione al contrario, perché al momento alcuni utenti hanno un avatar su Discourse e non ne hanno uno sul mio sito. Quindi, a quanto pare, le mie opzioni sono: caricare tutti gli avatar di Discourse sul mio sito e impostare “sso sovrascrive l’avatar”, oppure caricare tutti i miei avatar su Discourse. :unamused:

3 Mi Piace

Penso che sia perché non puoi semplicemente specificare un URL per un file in Faraday; deve essere prima letto come file, o qualcosa del genere.

Tuttavia, puoi utilizzare il gem discourse_api per aggiornare un avatar specificando un URL:

client.update_avatar(
  username: "norbert6",
  url: "http://vignette1.wikia.nocookie.net/despicableme/images/1/15/Jerryindespicableme.png"
)
2 Mi Piace