Question importante sur l'importation d'utilisateurs

Bonjour à la communauté. Je travaille depuis quelques semaines sur l’apprentissage et la réécriture d’un script d’importation pour mon site sous Livestreet CMS. J’ai déjà terminé d’écrire le script ; il ne reste plus qu’à le nettoyer et à soumettre une pull request.

J’ai également importé tous les utilisateurs, à l’exception de ceux qui s’authentifient via des services tiers. Ma question est donc la suivante : Comment importer vers Discourse les utilisateurs du site source qui utilisent l’authentification via Facebook ou Google ? Je cherche la solution la plus élégante. Le problème est également que certains utilisateurs Facebook n’ont pas d’adresse e-mail.

Bonus ! Importation des « J’aime » avec le paramètre date_added.

J’ai également découvert une autre méthode pour importer les « J’aime » avec une date, car l’ancienne méthode utilisée dans d’autres scripts ne fonctionne pas.

likes = mysql_query(<<-SQL
    SELECT target_id
         , user_voter_id
         , vote_date
         , target_type
      FROM #{TABLE_PREFIX}vote
     WHERE vote_direction = 1
     ORDER BY vote_date
SQL
).to_a

likes.each do |l|
  next unless user_id = user_id_from_imported_user_id(l["user_voter_id"])
  next unless post_id = post_id_from_imported_post_id("post-#{l["target_id"]}") 
  next unless user = User.find_by(id: user_id)
  next unless post = Post.find_by(id: post_id)
  PostActionCreator.create(user, post, PostActionType.types[2], created_at: Time.at(l["vote_date"])); #PostActionType.types[2] correspond à "J'aime"
end